temporal supported
This commit is contained in:
parent
54e6fbc84c
commit
5f1518cfd9
15
data/icews14/about.txt
Normal file
15
data/icews14/about.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# triples: 89320
|
||||||
|
# entities: 7128
|
||||||
|
# relations: 12409
|
||||||
|
# timesteps: 208
|
||||||
|
# test triples: 8255
|
||||||
|
# valid triples: 8239
|
||||||
|
# train triples: 72826
|
||||||
|
Measure method: N/A
|
||||||
|
Target Size : 0
|
||||||
|
Grow Factor: 0
|
||||||
|
Shrink Factor: 0
|
||||||
|
Epsilon Factor: 0
|
||||||
|
Search method: N/A
|
||||||
|
filter_dupes: inter
|
||||||
|
nonames: False
|
7128
data/icews14/entities.dict
Normal file
7128
data/icews14/entities.dict
Normal file
File diff suppressed because it is too large
Load Diff
12409
data/icews14/relations.dict
Normal file
12409
data/icews14/relations.dict
Normal file
File diff suppressed because it is too large
Load Diff
8255
data/icews14/test.txt
Normal file
8255
data/icews14/test.txt
Normal file
File diff suppressed because it is too large
Load Diff
209
data/icews14/time_map.dict
Normal file
209
data/icews14/time_map.dict
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
0 0 2
|
||||||
|
1 3 5
|
||||||
|
2 6 7
|
||||||
|
3 8 9
|
||||||
|
4 10 12
|
||||||
|
5 13 14
|
||||||
|
6 15 16
|
||||||
|
7 17 19
|
||||||
|
8 20 21
|
||||||
|
9 22 23
|
||||||
|
10 24 26
|
||||||
|
11 27 28
|
||||||
|
12 29 30
|
||||||
|
13 31 33
|
||||||
|
14 34 35
|
||||||
|
15 36 37
|
||||||
|
16 38 40
|
||||||
|
17 41 42
|
||||||
|
18 43 44
|
||||||
|
19 45 46
|
||||||
|
20 47 48
|
||||||
|
21 49 49
|
||||||
|
22 50 50
|
||||||
|
23 51 51
|
||||||
|
24 52 53
|
||||||
|
25 54 54
|
||||||
|
26 55 55
|
||||||
|
27 56 57
|
||||||
|
28 58 59
|
||||||
|
29 60 61
|
||||||
|
30 62 62
|
||||||
|
31 63 63
|
||||||
|
32 64 65
|
||||||
|
33 66 68
|
||||||
|
34 69 70
|
||||||
|
35 71 71
|
||||||
|
36 72 72
|
||||||
|
37 73 74
|
||||||
|
38 75 76
|
||||||
|
39 77 78
|
||||||
|
40 79 80
|
||||||
|
41 81 82
|
||||||
|
42 83 84
|
||||||
|
43 85 85
|
||||||
|
44 86 87
|
||||||
|
45 88 89
|
||||||
|
46 90 91
|
||||||
|
47 92 93
|
||||||
|
48 94 96
|
||||||
|
49 97 97
|
||||||
|
50 98 99
|
||||||
|
51 100 101
|
||||||
|
52 102 103
|
||||||
|
53 104 105
|
||||||
|
54 106 107
|
||||||
|
55 108 110
|
||||||
|
56 111 112
|
||||||
|
57 113 114
|
||||||
|
58 115 116
|
||||||
|
59 117 118
|
||||||
|
60 119 119
|
||||||
|
61 120 121
|
||||||
|
62 122 124
|
||||||
|
63 125 125
|
||||||
|
64 126 127
|
||||||
|
65 128 129
|
||||||
|
66 130 131
|
||||||
|
67 132 133
|
||||||
|
68 134 135
|
||||||
|
69 136 138
|
||||||
|
70 139 139
|
||||||
|
71 140 140
|
||||||
|
72 141 141
|
||||||
|
73 142 143
|
||||||
|
74 144 145
|
||||||
|
75 146 147
|
||||||
|
76 148 148
|
||||||
|
77 149 150
|
||||||
|
78 151 152
|
||||||
|
79 153 154
|
||||||
|
80 155 155
|
||||||
|
81 156 157
|
||||||
|
82 158 159
|
||||||
|
83 160 161
|
||||||
|
84 162 163
|
||||||
|
85 164 166
|
||||||
|
86 167 167
|
||||||
|
87 168 168
|
||||||
|
88 169 169
|
||||||
|
89 170 170
|
||||||
|
90 171 173
|
||||||
|
91 174 175
|
||||||
|
92 176 177
|
||||||
|
93 178 180
|
||||||
|
94 181 182
|
||||||
|
95 183 183
|
||||||
|
96 184 185
|
||||||
|
97 186 187
|
||||||
|
98 188 188
|
||||||
|
99 189 190
|
||||||
|
100 191 192
|
||||||
|
101 193 194
|
||||||
|
102 195 195
|
||||||
|
103 196 197
|
||||||
|
104 198 199
|
||||||
|
105 200 201
|
||||||
|
106 202 203
|
||||||
|
107 204 205
|
||||||
|
108 206 208
|
||||||
|
109 209 210
|
||||||
|
110 211 212
|
||||||
|
111 213 215
|
||||||
|
112 216 217
|
||||||
|
113 218 219
|
||||||
|
114 220 221
|
||||||
|
115 222 222
|
||||||
|
116 223 224
|
||||||
|
117 225 226
|
||||||
|
118 227 229
|
||||||
|
119 230 231
|
||||||
|
120 232 233
|
||||||
|
121 234 236
|
||||||
|
122 237 238
|
||||||
|
123 239 239
|
||||||
|
124 240 241
|
||||||
|
125 242 243
|
||||||
|
126 244 245
|
||||||
|
127 246 246
|
||||||
|
128 247 248
|
||||||
|
129 249 250
|
||||||
|
130 251 251
|
||||||
|
131 252 252
|
||||||
|
132 253 253
|
||||||
|
133 254 254
|
||||||
|
134 255 256
|
||||||
|
135 257 257
|
||||||
|
136 258 259
|
||||||
|
137 260 261
|
||||||
|
138 262 263
|
||||||
|
139 264 264
|
||||||
|
140 265 265
|
||||||
|
141 266 266
|
||||||
|
142 267 267
|
||||||
|
143 268 269
|
||||||
|
144 270 271
|
||||||
|
145 272 272
|
||||||
|
146 273 273
|
||||||
|
147 274 274
|
||||||
|
148 275 276
|
||||||
|
149 277 278
|
||||||
|
150 279 279
|
||||||
|
151 280 281
|
||||||
|
152 282 283
|
||||||
|
153 284 285
|
||||||
|
154 286 286
|
||||||
|
155 287 287
|
||||||
|
156 288 288
|
||||||
|
157 289 289
|
||||||
|
158 290 291
|
||||||
|
159 292 292
|
||||||
|
160 293 293
|
||||||
|
161 294 294
|
||||||
|
162 295 295
|
||||||
|
163 296 297
|
||||||
|
164 298 299
|
||||||
|
165 300 300
|
||||||
|
166 301 301
|
||||||
|
167 302 303
|
||||||
|
168 304 305
|
||||||
|
169 306 307
|
||||||
|
170 308 309
|
||||||
|
171 310 310
|
||||||
|
172 311 312
|
||||||
|
173 313 313
|
||||||
|
174 314 314
|
||||||
|
175 315 315
|
||||||
|
176 316 316
|
||||||
|
177 317 317
|
||||||
|
178 318 319
|
||||||
|
179 320 320
|
||||||
|
180 321 321
|
||||||
|
181 322 322
|
||||||
|
182 323 323
|
||||||
|
183 324 324
|
||||||
|
184 325 326
|
||||||
|
185 327 327
|
||||||
|
186 328 328
|
||||||
|
187 329 329
|
||||||
|
188 330 330
|
||||||
|
189 331 332
|
||||||
|
190 333 334
|
||||||
|
191 335 335
|
||||||
|
192 336 336
|
||||||
|
193 337 338
|
||||||
|
194 339 340
|
||||||
|
195 341 342
|
||||||
|
196 343 343
|
||||||
|
197 344 344
|
||||||
|
198 345 346
|
||||||
|
199 347 348
|
||||||
|
200 349 349
|
||||||
|
201 350 350
|
||||||
|
202 351 352
|
||||||
|
203 353 355
|
||||||
|
204 356 357
|
||||||
|
205 358 359
|
||||||
|
206 360 362
|
||||||
|
207 363 365
|
||||||
|
208 366 366
|
72826
data/icews14/train.txt
Normal file
72826
data/icews14/train.txt
Normal file
File diff suppressed because it is too large
Load Diff
8239
data/icews14/valid.txt
Normal file
8239
data/icews14/valid.txt
Normal file
File diff suppressed because it is too large
Load Diff
15
data/wikidata12k/about.txt
Normal file
15
data/wikidata12k/about.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# triples: 291818
|
||||||
|
# entities: 12554
|
||||||
|
# relations: 423
|
||||||
|
# timesteps: 70
|
||||||
|
# test triples: 19271
|
||||||
|
# valid triples: 20208
|
||||||
|
# train triples: 252339
|
||||||
|
Measure method: N/A
|
||||||
|
Target Size : 423
|
||||||
|
Grow Factor: 0
|
||||||
|
Shrink Factor: 4.0
|
||||||
|
Epsilon Factor: 0
|
||||||
|
Search method: N/A
|
||||||
|
filter_dupes: inter
|
||||||
|
nonames: False
|
12554
data/wikidata12k/entities.dict
Normal file
12554
data/wikidata12k/entities.dict
Normal file
File diff suppressed because it is too large
Load Diff
423
data/wikidata12k/relations.dict
Normal file
423
data/wikidata12k/relations.dict
Normal file
@ -0,0 +1,423 @@
|
|||||||
|
0 P131[0-0]
|
||||||
|
1 P131[1-1]
|
||||||
|
2 P131[2-2]
|
||||||
|
3 P131[3-3]
|
||||||
|
4 P131[4-4]
|
||||||
|
5 P131[5-5]
|
||||||
|
6 P131[6-6]
|
||||||
|
7 P131[7-7]
|
||||||
|
8 P131[8-8]
|
||||||
|
9 P131[9-9]
|
||||||
|
10 P131[10-10]
|
||||||
|
11 P131[11-11]
|
||||||
|
12 P131[12-12]
|
||||||
|
13 P131[13-13]
|
||||||
|
14 P131[14-14]
|
||||||
|
15 P131[15-15]
|
||||||
|
16 P131[16-16]
|
||||||
|
17 P131[17-17]
|
||||||
|
18 P131[18-18]
|
||||||
|
19 P131[19-19]
|
||||||
|
20 P131[20-20]
|
||||||
|
21 P131[21-21]
|
||||||
|
22 P131[22-22]
|
||||||
|
23 P131[23-23]
|
||||||
|
24 P131[24-24]
|
||||||
|
25 P131[25-25]
|
||||||
|
26 P131[26-26]
|
||||||
|
27 P131[27-27]
|
||||||
|
28 P131[28-28]
|
||||||
|
29 P131[29-29]
|
||||||
|
30 P131[30-30]
|
||||||
|
31 P131[31-31]
|
||||||
|
32 P131[32-32]
|
||||||
|
33 P131[33-33]
|
||||||
|
34 P131[34-34]
|
||||||
|
35 P131[35-35]
|
||||||
|
36 P131[36-36]
|
||||||
|
37 P131[37-37]
|
||||||
|
38 P131[38-38]
|
||||||
|
39 P131[39-39]
|
||||||
|
40 P131[40-40]
|
||||||
|
41 P131[41-41]
|
||||||
|
42 P131[42-42]
|
||||||
|
43 P131[43-43]
|
||||||
|
44 P131[44-44]
|
||||||
|
45 P131[45-45]
|
||||||
|
46 P131[46-46]
|
||||||
|
47 P131[47-47]
|
||||||
|
48 P131[48-48]
|
||||||
|
49 P131[49-49]
|
||||||
|
50 P131[50-50]
|
||||||
|
51 P131[51-51]
|
||||||
|
52 P131[52-52]
|
||||||
|
53 P131[53-53]
|
||||||
|
54 P131[54-54]
|
||||||
|
55 P131[55-55]
|
||||||
|
56 P131[56-56]
|
||||||
|
57 P131[57-57]
|
||||||
|
58 P131[58-58]
|
||||||
|
59 P131[59-59]
|
||||||
|
60 P131[60-60]
|
||||||
|
61 P131[61-61]
|
||||||
|
62 P131[62-62]
|
||||||
|
63 P131[63-63]
|
||||||
|
64 P131[64-64]
|
||||||
|
65 P131[65-65]
|
||||||
|
66 P131[66-66]
|
||||||
|
67 P131[67-67]
|
||||||
|
68 P131[68-68]
|
||||||
|
69 P131[69-69]
|
||||||
|
70 P1435[65-65]
|
||||||
|
71 P39[49-49]
|
||||||
|
72 P39[50-50]
|
||||||
|
73 P39[51-51]
|
||||||
|
74 P39[52-52]
|
||||||
|
75 P39[53-53]
|
||||||
|
76 P39[54-54]
|
||||||
|
77 P39[55-55]
|
||||||
|
78 P39[56-56]
|
||||||
|
79 P39[57-57]
|
||||||
|
80 P39[58-58]
|
||||||
|
81 P39[59-59]
|
||||||
|
82 P39[60-60]
|
||||||
|
83 P39[61-61]
|
||||||
|
84 P39[62-62]
|
||||||
|
85 P39[63-63]
|
||||||
|
86 P39[64-64]
|
||||||
|
87 P39[65-65]
|
||||||
|
88 P39[66-66]
|
||||||
|
89 P39[67-67]
|
||||||
|
90 P39[68-68]
|
||||||
|
91 P39[69-69]
|
||||||
|
92 P54[40-40]
|
||||||
|
93 P54[41-41]
|
||||||
|
94 P54[42-42]
|
||||||
|
95 P54[43-43]
|
||||||
|
96 P54[44-44]
|
||||||
|
97 P54[45-45]
|
||||||
|
98 P54[46-46]
|
||||||
|
99 P54[47-47]
|
||||||
|
100 P54[48-48]
|
||||||
|
101 P54[49-49]
|
||||||
|
102 P54[50-50]
|
||||||
|
103 P54[51-51]
|
||||||
|
104 P54[52-52]
|
||||||
|
105 P54[53-53]
|
||||||
|
106 P54[54-54]
|
||||||
|
107 P54[55-55]
|
||||||
|
108 P54[56-56]
|
||||||
|
109 P54[57-57]
|
||||||
|
110 P54[58-58]
|
||||||
|
111 P54[59-59]
|
||||||
|
112 P54[60-60]
|
||||||
|
113 P54[61-61]
|
||||||
|
114 P54[62-62]
|
||||||
|
115 P54[63-63]
|
||||||
|
116 P54[64-64]
|
||||||
|
117 P54[65-65]
|
||||||
|
118 P54[66-66]
|
||||||
|
119 P54[67-67]
|
||||||
|
120 P54[68-68]
|
||||||
|
121 P54[69-69]
|
||||||
|
122 P31[0-0]
|
||||||
|
123 P31[1-1]
|
||||||
|
124 P31[2-2]
|
||||||
|
125 P31[3-3]
|
||||||
|
126 P31[4-4]
|
||||||
|
127 P31[5-5]
|
||||||
|
128 P31[6-6]
|
||||||
|
129 P31[7-7]
|
||||||
|
130 P31[8-8]
|
||||||
|
131 P31[9-9]
|
||||||
|
132 P31[10-10]
|
||||||
|
133 P31[11-11]
|
||||||
|
134 P31[12-12]
|
||||||
|
135 P31[13-13]
|
||||||
|
136 P31[14-14]
|
||||||
|
137 P31[15-15]
|
||||||
|
138 P31[16-16]
|
||||||
|
139 P31[17-17]
|
||||||
|
140 P31[18-18]
|
||||||
|
141 P31[19-19]
|
||||||
|
142 P31[20-20]
|
||||||
|
143 P31[21-21]
|
||||||
|
144 P31[22-22]
|
||||||
|
145 P31[23-23]
|
||||||
|
146 P31[24-24]
|
||||||
|
147 P31[25-25]
|
||||||
|
148 P31[26-26]
|
||||||
|
149 P31[27-27]
|
||||||
|
150 P31[28-28]
|
||||||
|
151 P31[29-29]
|
||||||
|
152 P31[30-30]
|
||||||
|
153 P31[31-31]
|
||||||
|
154 P31[32-32]
|
||||||
|
155 P31[33-33]
|
||||||
|
156 P31[34-34]
|
||||||
|
157 P31[35-35]
|
||||||
|
158 P31[36-36]
|
||||||
|
159 P31[37-37]
|
||||||
|
160 P31[38-38]
|
||||||
|
161 P31[39-39]
|
||||||
|
162 P31[40-40]
|
||||||
|
163 P31[41-41]
|
||||||
|
164 P31[42-42]
|
||||||
|
165 P31[43-43]
|
||||||
|
166 P31[44-44]
|
||||||
|
167 P31[45-45]
|
||||||
|
168 P31[46-46]
|
||||||
|
169 P31[47-47]
|
||||||
|
170 P31[48-48]
|
||||||
|
171 P31[49-49]
|
||||||
|
172 P31[50-50]
|
||||||
|
173 P31[51-51]
|
||||||
|
174 P31[52-52]
|
||||||
|
175 P31[53-53]
|
||||||
|
176 P31[54-54]
|
||||||
|
177 P31[55-55]
|
||||||
|
178 P31[56-56]
|
||||||
|
179 P31[57-57]
|
||||||
|
180 P31[58-58]
|
||||||
|
181 P31[59-59]
|
||||||
|
182 P31[60-60]
|
||||||
|
183 P31[61-61]
|
||||||
|
184 P31[62-62]
|
||||||
|
185 P31[63-63]
|
||||||
|
186 P31[64-64]
|
||||||
|
187 P31[65-65]
|
||||||
|
188 P31[66-66]
|
||||||
|
189 P31[67-67]
|
||||||
|
190 P31[68-68]
|
||||||
|
191 P31[69-69]
|
||||||
|
192 P463[26-26]
|
||||||
|
193 P463[27-27]
|
||||||
|
194 P463[28-28]
|
||||||
|
195 P463[29-29]
|
||||||
|
196 P463[30-30]
|
||||||
|
197 P463[31-31]
|
||||||
|
198 P463[32-32]
|
||||||
|
199 P463[33-33]
|
||||||
|
200 P463[34-34]
|
||||||
|
201 P463[35-35]
|
||||||
|
202 P463[36-36]
|
||||||
|
203 P463[37-37]
|
||||||
|
204 P463[38-38]
|
||||||
|
205 P463[39-39]
|
||||||
|
206 P463[40-40]
|
||||||
|
207 P463[41-41]
|
||||||
|
208 P463[42-42]
|
||||||
|
209 P463[43-43]
|
||||||
|
210 P463[44-44]
|
||||||
|
211 P463[45-45]
|
||||||
|
212 P463[46-46]
|
||||||
|
213 P463[47-47]
|
||||||
|
214 P463[48-48]
|
||||||
|
215 P463[49-49]
|
||||||
|
216 P463[50-50]
|
||||||
|
217 P463[51-51]
|
||||||
|
218 P463[52-52]
|
||||||
|
219 P463[53-53]
|
||||||
|
220 P463[54-54]
|
||||||
|
221 P463[55-55]
|
||||||
|
222 P463[56-56]
|
||||||
|
223 P463[57-57]
|
||||||
|
224 P463[58-58]
|
||||||
|
225 P463[59-59]
|
||||||
|
226 P463[60-60]
|
||||||
|
227 P463[61-61]
|
||||||
|
228 P463[62-62]
|
||||||
|
229 P463[63-63]
|
||||||
|
230 P463[64-64]
|
||||||
|
231 P463[65-65]
|
||||||
|
232 P463[66-66]
|
||||||
|
233 P463[67-67]
|
||||||
|
234 P463[68-68]
|
||||||
|
235 P463[69-69]
|
||||||
|
236 P512[4-69]
|
||||||
|
237 P190[0-29]
|
||||||
|
238 P150[0-3]
|
||||||
|
239 P1376[39-47]
|
||||||
|
240 P463[0-7]
|
||||||
|
241 P166[0-7]
|
||||||
|
242 P2962[18-30]
|
||||||
|
243 P108[29-36]
|
||||||
|
244 P39[0-3]
|
||||||
|
245 P17[47-48]
|
||||||
|
246 P166[21-23]
|
||||||
|
247 P793[46-69]
|
||||||
|
248 P69[32-41]
|
||||||
|
249 P17[57-58]
|
||||||
|
250 P190[42-45]
|
||||||
|
251 P2962[39-42]
|
||||||
|
252 P54[0-18]
|
||||||
|
253 P26[56-61]
|
||||||
|
254 P150[14-17]
|
||||||
|
255 P463[16-17]
|
||||||
|
256 P26[39-46]
|
||||||
|
257 P579[36-43]
|
||||||
|
258 P579[16-23]
|
||||||
|
259 P2962[59-60]
|
||||||
|
260 P1411[59-61]
|
||||||
|
261 P26[20-27]
|
||||||
|
262 P6[4-69]
|
||||||
|
263 P1435[33-34]
|
||||||
|
264 P166[52-53]
|
||||||
|
265 P108[49-57]
|
||||||
|
266 P150[10-13]
|
||||||
|
267 P1346[47-68]
|
||||||
|
268 P150[18-21]
|
||||||
|
269 P1346[13-46]
|
||||||
|
270 P69[20-23]
|
||||||
|
271 P39[31-32]
|
||||||
|
272 P1411[32-37]
|
||||||
|
273 P166[62-63]
|
||||||
|
274 P150[44-47]
|
||||||
|
275 P2962[61-62]
|
||||||
|
276 P150[48-51]
|
||||||
|
277 P150[52-55]
|
||||||
|
278 P1411[62-67]
|
||||||
|
279 P1435[35-36]
|
||||||
|
280 P1411[48-51]
|
||||||
|
281 P150[22-25]
|
||||||
|
282 P2962[63-64]
|
||||||
|
283 P2962[65-66]
|
||||||
|
284 P166[58-59]
|
||||||
|
285 P190[46-49]
|
||||||
|
286 P54[34-35]
|
||||||
|
287 P1435[4-16]
|
||||||
|
288 P463[18-19]
|
||||||
|
289 P150[31-34]
|
||||||
|
290 P150[35-38]
|
||||||
|
291 P39[35-36]
|
||||||
|
292 P26[62-69]
|
||||||
|
293 P1411[56-58]
|
||||||
|
294 P1435[37-38]
|
||||||
|
295 P166[60-61]
|
||||||
|
296 P39[33-34]
|
||||||
|
297 P102[24-31]
|
||||||
|
298 P2962[43-46]
|
||||||
|
299 P108[37-48]
|
||||||
|
300 P190[50-53]
|
||||||
|
301 P39[4-6]
|
||||||
|
302 P1435[39-40]
|
||||||
|
303 P793[0-45]
|
||||||
|
304 P150[64-69]
|
||||||
|
305 P39[19-22]
|
||||||
|
306 P27[30-38]
|
||||||
|
307 P2962[31-38]
|
||||||
|
308 P1411[24-31]
|
||||||
|
309 P102[40-45]
|
||||||
|
310 P39[37-38]
|
||||||
|
311 P463[8-11]
|
||||||
|
312 P1435[41-42]
|
||||||
|
313 P27[52-59]
|
||||||
|
314 P69[16-19]
|
||||||
|
315 P17[16-18]
|
||||||
|
316 P190[54-57]
|
||||||
|
317 P1435[43-44]
|
||||||
|
318 P166[8-15]
|
||||||
|
319 P166[45-47]
|
||||||
|
320 P2962[47-50]
|
||||||
|
321 P39[39-40]
|
||||||
|
322 P1411[52-55]
|
||||||
|
323 P108[58-69]
|
||||||
|
324 P463[20-21]
|
||||||
|
325 P39[41-42]
|
||||||
|
326 P150[26-30]
|
||||||
|
327 P150[39-43]
|
||||||
|
328 P1435[45-46]
|
||||||
|
329 P26[28-38]
|
||||||
|
330 P54[27-30]
|
||||||
|
331 P190[58-61]
|
||||||
|
332 P17[59-61]
|
||||||
|
333 P54[36-37]
|
||||||
|
334 P166[16-20]
|
||||||
|
335 P166[37-40]
|
||||||
|
336 P1435[47-48]
|
||||||
|
337 P17[0-3]
|
||||||
|
338 P26[47-55]
|
||||||
|
339 P1435[49-50]
|
||||||
|
340 P1435[25-28]
|
||||||
|
341 P150[4-9]
|
||||||
|
342 P102[63-69]
|
||||||
|
343 P26[0-19]
|
||||||
|
344 P1435[17-24]
|
||||||
|
345 P39[23-26]
|
||||||
|
346 P1435[51-52]
|
||||||
|
347 P39[7-11]
|
||||||
|
348 P69[12-15]
|
||||||
|
349 P69[24-31]
|
||||||
|
350 P102[0-23]
|
||||||
|
351 P39[43-44]
|
||||||
|
352 P579[24-35]
|
||||||
|
353 P190[62-65]
|
||||||
|
354 P1435[53-54]
|
||||||
|
355 P1376[0-18]
|
||||||
|
356 P27[0-14]
|
||||||
|
357 P463[12-15]
|
||||||
|
358 P166[33-36]
|
||||||
|
359 P102[32-39]
|
||||||
|
360 P17[4-7]
|
||||||
|
361 P190[30-41]
|
||||||
|
362 P166[24-28]
|
||||||
|
363 P190[66-69]
|
||||||
|
364 P69[42-69]
|
||||||
|
365 P1435[55-56]
|
||||||
|
366 P54[31-33]
|
||||||
|
367 P39[45-46]
|
||||||
|
368 P17[12-15]
|
||||||
|
369 P1435[57-58]
|
||||||
|
370 P54[19-26]
|
||||||
|
371 P2962[51-54]
|
||||||
|
372 P2962[67-69]
|
||||||
|
373 P1435[59-60]
|
||||||
|
374 P579[44-56]
|
||||||
|
375 P1435[61-62]
|
||||||
|
376 P166[41-44]
|
||||||
|
377 P17[19-22]
|
||||||
|
378 P1376[19-38]
|
||||||
|
379 P17[23-26]
|
||||||
|
380 P1376[48-69]
|
||||||
|
381 P463[22-23]
|
||||||
|
382 P17[27-30]
|
||||||
|
383 P1435[63-64]
|
||||||
|
384 P69[0-3]
|
||||||
|
385 P1435[66-67]
|
||||||
|
386 P17[35-38]
|
||||||
|
387 P69[8-11]
|
||||||
|
388 P1435[68-69]
|
||||||
|
389 P17[31-34]
|
||||||
|
390 P102[46-53]
|
||||||
|
391 P27[60-69]
|
||||||
|
392 P579[57-69]
|
||||||
|
393 P69[4-7]
|
||||||
|
394 P1411[7-14]
|
||||||
|
395 P551[0-35]
|
||||||
|
396 P108[0-28]
|
||||||
|
397 P17[8-11]
|
||||||
|
398 P1411[38-47]
|
||||||
|
399 P17[43-46]
|
||||||
|
400 P17[49-52]
|
||||||
|
401 P166[64-69]
|
||||||
|
402 P1435[29-32]
|
||||||
|
403 P54[38-39]
|
||||||
|
404 P39[27-30]
|
||||||
|
405 P2962[55-58]
|
||||||
|
406 P463[24-25]
|
||||||
|
407 P17[39-42]
|
||||||
|
408 P17[53-56]
|
||||||
|
409 P17[66-69]
|
||||||
|
410 P17[62-65]
|
||||||
|
411 P1411[15-23]
|
||||||
|
412 P166[48-51]
|
||||||
|
413 P27[15-29]
|
||||||
|
414 P150[56-63]
|
||||||
|
415 P27[39-51]
|
||||||
|
416 P39[47-48]
|
||||||
|
417 P166[29-32]
|
||||||
|
418 P39[12-18]
|
||||||
|
419 P166[54-57]
|
||||||
|
420 P551[36-69]
|
||||||
|
421 P579[0-15]
|
||||||
|
422 P102[54-62]
|
19271
data/wikidata12k/test.txt
Normal file
19271
data/wikidata12k/test.txt
Normal file
File diff suppressed because it is too large
Load Diff
71
data/wikidata12k/time_map.dict
Normal file
71
data/wikidata12k/time_map.dict
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
0 19 19
|
||||||
|
1 20 1643
|
||||||
|
2 1644 1790
|
||||||
|
3 1791 1816
|
||||||
|
4 1817 1855
|
||||||
|
5 1856 1871
|
||||||
|
6 1872 1893
|
||||||
|
7 1894 1905
|
||||||
|
8 1906 1913
|
||||||
|
9 1914 1918
|
||||||
|
10 1919 1920
|
||||||
|
11 1921 1924
|
||||||
|
12 1925 1929
|
||||||
|
13 1930 1933
|
||||||
|
14 1934 1937
|
||||||
|
15 1938 1941
|
||||||
|
16 1942 1945
|
||||||
|
17 1946 1948
|
||||||
|
18 1949 1950
|
||||||
|
19 1951 1953
|
||||||
|
20 1954 1956
|
||||||
|
21 1957 1959
|
||||||
|
22 1960 1961
|
||||||
|
23 1962 1963
|
||||||
|
24 1964 1965
|
||||||
|
25 1966 1967
|
||||||
|
26 1968 1968
|
||||||
|
27 1969 1970
|
||||||
|
28 1971 1972
|
||||||
|
29 1973 1974
|
||||||
|
30 1975 1976
|
||||||
|
31 1977 1978
|
||||||
|
32 1979 1980
|
||||||
|
33 1981 1982
|
||||||
|
34 1983 1983
|
||||||
|
35 1984 1984
|
||||||
|
36 1985 1985
|
||||||
|
37 1986 1986
|
||||||
|
38 1987 1987
|
||||||
|
39 1988 1988
|
||||||
|
40 1989 1989
|
||||||
|
41 1990 1990
|
||||||
|
42 1991 1991
|
||||||
|
43 1992 1992
|
||||||
|
44 1993 1993
|
||||||
|
45 1994 1994
|
||||||
|
46 1995 1995
|
||||||
|
47 1996 1996
|
||||||
|
48 1997 1997
|
||||||
|
49 1998 1998
|
||||||
|
50 1999 1999
|
||||||
|
51 2000 2000
|
||||||
|
52 2001 2001
|
||||||
|
53 2002 2002
|
||||||
|
54 2003 2003
|
||||||
|
55 2004 2004
|
||||||
|
56 2005 2005
|
||||||
|
57 2006 2006
|
||||||
|
58 2007 2007
|
||||||
|
59 2008 2008
|
||||||
|
60 2009 2009
|
||||||
|
61 2010 2010
|
||||||
|
62 2011 2011
|
||||||
|
63 2012 2012
|
||||||
|
64 2013 2013
|
||||||
|
65 2014 2014
|
||||||
|
66 2015 2015
|
||||||
|
67 2016 2016
|
||||||
|
68 2017 2017
|
||||||
|
69 2018 2020
|
||||||
|
70 2021 2021
|
252339
data/wikidata12k/train.txt
Normal file
252339
data/wikidata12k/train.txt
Normal file
File diff suppressed because it is too large
Load Diff
20208
data/wikidata12k/valid.txt
Normal file
20208
data/wikidata12k/valid.txt
Normal file
File diff suppressed because it is too large
Load Diff
15
data/yago11k/about.txt
Normal file
15
data/yago11k/about.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# triples: 78032
|
||||||
|
# entities: 10526
|
||||||
|
# relations: 177
|
||||||
|
# timesteps: 46
|
||||||
|
# test triples: 6909
|
||||||
|
# valid triples: 7198
|
||||||
|
# train triples: 63925
|
||||||
|
Measure method: N/A
|
||||||
|
Target Size : 0
|
||||||
|
Grow Factor: 0
|
||||||
|
Shrink Factor: 0
|
||||||
|
Epsilon Factor: 5.0
|
||||||
|
Search method: N/A
|
||||||
|
filter_dupes: inter
|
||||||
|
nonames: False
|
10526
data/yago11k/entities.dict
Normal file
10526
data/yago11k/entities.dict
Normal file
File diff suppressed because it is too large
Load Diff
177
data/yago11k/relations.dict
Normal file
177
data/yago11k/relations.dict
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
0 <wasBornIn>[0-2]
|
||||||
|
1 <wasBornIn>[2-5]
|
||||||
|
2 <wasBornIn>[5-7]
|
||||||
|
3 <wasBornIn>[7-10]
|
||||||
|
4 <wasBornIn>[10-12]
|
||||||
|
5 <wasBornIn>[12-15]
|
||||||
|
6 <wasBornIn>[15-17]
|
||||||
|
7 <wasBornIn>[17-20]
|
||||||
|
8 <wasBornIn>[20-22]
|
||||||
|
9 <wasBornIn>[22-25]
|
||||||
|
10 <wasBornIn>[25-27]
|
||||||
|
11 <wasBornIn>[27-30]
|
||||||
|
12 <wasBornIn>[30-32]
|
||||||
|
13 <wasBornIn>[32-35]
|
||||||
|
14 <wasBornIn>[35-45]
|
||||||
|
15 <wasBornIn>[52-52]
|
||||||
|
16 <diedIn>[0-3]
|
||||||
|
17 <diedIn>[3-5]
|
||||||
|
18 <diedIn>[5-7]
|
||||||
|
19 <diedIn>[7-10]
|
||||||
|
20 <diedIn>[10-12]
|
||||||
|
21 <diedIn>[12-14]
|
||||||
|
22 <diedIn>[14-17]
|
||||||
|
23 <diedIn>[17-19]
|
||||||
|
24 <diedIn>[19-21]
|
||||||
|
25 <diedIn>[21-23]
|
||||||
|
26 <diedIn>[23-25]
|
||||||
|
27 <diedIn>[25-27]
|
||||||
|
28 <diedIn>[27-29]
|
||||||
|
29 <diedIn>[29-32]
|
||||||
|
30 <diedIn>[32-34]
|
||||||
|
31 <diedIn>[34-36]
|
||||||
|
32 <diedIn>[36-38]
|
||||||
|
33 <diedIn>[38-40]
|
||||||
|
34 <diedIn>[40-42]
|
||||||
|
35 <diedIn>[42-44]
|
||||||
|
36 <diedIn>[44-47]
|
||||||
|
37 <diedIn>[47-49]
|
||||||
|
38 <diedIn>[49-51]
|
||||||
|
39 <diedIn>[51-53]
|
||||||
|
40 <diedIn>[53-55]
|
||||||
|
41 <diedIn>[55-57]
|
||||||
|
42 <diedIn>[59-59]
|
||||||
|
43 <worksAt>[0-3]
|
||||||
|
44 <worksAt>[3-5]
|
||||||
|
45 <worksAt>[5-7]
|
||||||
|
46 <worksAt>[7-10]
|
||||||
|
47 <worksAt>[10-12]
|
||||||
|
48 <worksAt>[12-14]
|
||||||
|
49 <worksAt>[14-17]
|
||||||
|
50 <worksAt>[17-19]
|
||||||
|
51 <worksAt>[19-21]
|
||||||
|
52 <worksAt>[21-23]
|
||||||
|
53 <worksAt>[23-25]
|
||||||
|
54 <worksAt>[25-27]
|
||||||
|
55 <worksAt>[27-29]
|
||||||
|
56 <worksAt>[29-32]
|
||||||
|
57 <worksAt>[32-34]
|
||||||
|
58 <worksAt>[34-36]
|
||||||
|
59 <worksAt>[36-40]
|
||||||
|
60 <worksAt>[40-42]
|
||||||
|
61 <worksAt>[42-47]
|
||||||
|
62 <worksAt>[47-53]
|
||||||
|
63 <worksAt>[59-59]
|
||||||
|
64 <playsFor>[0-3]
|
||||||
|
65 <playsFor>[3-5]
|
||||||
|
66 <playsFor>[5-23]
|
||||||
|
67 <playsFor>[23-25]
|
||||||
|
68 <playsFor>[25-27]
|
||||||
|
69 <playsFor>[27-29]
|
||||||
|
70 <playsFor>[29-32]
|
||||||
|
71 <playsFor>[32-34]
|
||||||
|
72 <playsFor>[34-36]
|
||||||
|
73 <playsFor>[36-38]
|
||||||
|
74 <playsFor>[38-40]
|
||||||
|
75 <playsFor>[40-42]
|
||||||
|
76 <playsFor>[42-44]
|
||||||
|
77 <playsFor>[44-47]
|
||||||
|
78 <playsFor>[47-51]
|
||||||
|
79 <playsFor>[59-59]
|
||||||
|
80 <hasWonPrize>[1-4]
|
||||||
|
81 <hasWonPrize>[4-6]
|
||||||
|
82 <hasWonPrize>[6-8]
|
||||||
|
83 <hasWonPrize>[8-11]
|
||||||
|
84 <hasWonPrize>[11-15]
|
||||||
|
85 <hasWonPrize>[15-18]
|
||||||
|
86 <hasWonPrize>[18-22]
|
||||||
|
87 <hasWonPrize>[22-26]
|
||||||
|
88 <hasWonPrize>[26-30]
|
||||||
|
89 <hasWonPrize>[30-33]
|
||||||
|
90 <hasWonPrize>[33-37]
|
||||||
|
91 <hasWonPrize>[37-47]
|
||||||
|
92 <hasWonPrize>[47-53]
|
||||||
|
93 <hasWonPrize>[59-59]
|
||||||
|
94 <isMarriedTo>[0-3]
|
||||||
|
95 <isMarriedTo>[3-5]
|
||||||
|
96 <isMarriedTo>[5-7]
|
||||||
|
97 <isMarriedTo>[7-10]
|
||||||
|
98 <isMarriedTo>[10-12]
|
||||||
|
99 <isMarriedTo>[12-14]
|
||||||
|
100 <isMarriedTo>[14-17]
|
||||||
|
101 <isMarriedTo>[17-19]
|
||||||
|
102 <isMarriedTo>[19-21]
|
||||||
|
103 <isMarriedTo>[21-23]
|
||||||
|
104 <isMarriedTo>[23-25]
|
||||||
|
105 <isMarriedTo>[25-27]
|
||||||
|
106 <isMarriedTo>[27-29]
|
||||||
|
107 <isMarriedTo>[29-32]
|
||||||
|
108 <isMarriedTo>[32-34]
|
||||||
|
109 <isMarriedTo>[34-38]
|
||||||
|
110 <isMarriedTo>[38-42]
|
||||||
|
111 <isMarriedTo>[42-47]
|
||||||
|
112 <isMarriedTo>[47-51]
|
||||||
|
113 <isMarriedTo>[51-55]
|
||||||
|
114 <isMarriedTo>[59-59]
|
||||||
|
115 <owns>[0-10]
|
||||||
|
116 <owns>[10-17]
|
||||||
|
117 <owns>[17-19]
|
||||||
|
118 <owns>[19-23]
|
||||||
|
119 <owns>[23-36]
|
||||||
|
120 <owns>[36-38]
|
||||||
|
121 <owns>[59-59]
|
||||||
|
122 <graduatedFrom>[0-3]
|
||||||
|
123 <graduatedFrom>[3-5]
|
||||||
|
124 <graduatedFrom>[5-7]
|
||||||
|
125 <graduatedFrom>[7-10]
|
||||||
|
126 <graduatedFrom>[10-14]
|
||||||
|
127 <graduatedFrom>[14-17]
|
||||||
|
128 <graduatedFrom>[17-19]
|
||||||
|
129 <graduatedFrom>[19-21]
|
||||||
|
130 <graduatedFrom>[21-23]
|
||||||
|
131 <graduatedFrom>[23-27]
|
||||||
|
132 <graduatedFrom>[27-32]
|
||||||
|
133 <graduatedFrom>[32-34]
|
||||||
|
134 <graduatedFrom>[34-38]
|
||||||
|
135 <graduatedFrom>[38-42]
|
||||||
|
136 <graduatedFrom>[59-59]
|
||||||
|
137 <isAffiliatedTo>[1-4]
|
||||||
|
138 <isAffiliatedTo>[4-6]
|
||||||
|
139 <isAffiliatedTo>[6-8]
|
||||||
|
140 <isAffiliatedTo>[8-11]
|
||||||
|
141 <isAffiliatedTo>[11-13]
|
||||||
|
142 <isAffiliatedTo>[13-15]
|
||||||
|
143 <isAffiliatedTo>[15-18]
|
||||||
|
144 <isAffiliatedTo>[18-20]
|
||||||
|
145 <isAffiliatedTo>[20-22]
|
||||||
|
146 <isAffiliatedTo>[22-24]
|
||||||
|
147 <isAffiliatedTo>[24-26]
|
||||||
|
148 <isAffiliatedTo>[26-28]
|
||||||
|
149 <isAffiliatedTo>[28-30]
|
||||||
|
150 <isAffiliatedTo>[30-33]
|
||||||
|
151 <isAffiliatedTo>[33-35]
|
||||||
|
152 <isAffiliatedTo>[35-37]
|
||||||
|
153 <isAffiliatedTo>[37-40]
|
||||||
|
154 <isAffiliatedTo>[40-42]
|
||||||
|
155 <isAffiliatedTo>[42-44]
|
||||||
|
156 <isAffiliatedTo>[44-47]
|
||||||
|
157 <isAffiliatedTo>[47-49]
|
||||||
|
158 <isAffiliatedTo>[49-51]
|
||||||
|
159 <isAffiliatedTo>[51-53]
|
||||||
|
160 <isAffiliatedTo>[53-55]
|
||||||
|
161 <isAffiliatedTo>[55-57]
|
||||||
|
162 <isAffiliatedTo>[59-59]
|
||||||
|
163 <created>[0-3]
|
||||||
|
164 <created>[3-5]
|
||||||
|
165 <created>[5-10]
|
||||||
|
166 <created>[10-12]
|
||||||
|
167 <created>[12-17]
|
||||||
|
168 <created>[17-19]
|
||||||
|
169 <created>[19-25]
|
||||||
|
170 <created>[25-29]
|
||||||
|
171 <created>[29-32]
|
||||||
|
172 <created>[32-36]
|
||||||
|
173 <created>[36-42]
|
||||||
|
174 <created>[42-47]
|
||||||
|
175 <created>[47-53]
|
||||||
|
176 <created>[59-59]
|
6909
data/yago11k/test.txt
Normal file
6909
data/yago11k/test.txt
Normal file
File diff suppressed because it is too large
Load Diff
60
data/yago11k/time_map.dict
Normal file
60
data/yago11k/time_map.dict
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
0 -431 1782
|
||||||
|
1 1783 1848
|
||||||
|
2 1849 1870
|
||||||
|
3 1871 1888
|
||||||
|
4 1889 1899
|
||||||
|
5 1900 1906
|
||||||
|
6 1907 1912
|
||||||
|
7 1913 1917
|
||||||
|
8 1918 1922
|
||||||
|
9 1923 1926
|
||||||
|
10 1927 1930
|
||||||
|
11 1931 1934
|
||||||
|
12 1935 1938
|
||||||
|
13 1939 1941
|
||||||
|
14 1942 1944
|
||||||
|
15 1945 1947
|
||||||
|
16 1948 1950
|
||||||
|
17 1951 1953
|
||||||
|
18 1954 1956
|
||||||
|
19 1957 1959
|
||||||
|
20 1960 1962
|
||||||
|
21 1963 1965
|
||||||
|
22 1966 1967
|
||||||
|
23 1968 1969
|
||||||
|
24 1970 1971
|
||||||
|
25 1972 1973
|
||||||
|
26 1974 1975
|
||||||
|
27 1976 1977
|
||||||
|
28 1978 1979
|
||||||
|
29 1980 1981
|
||||||
|
30 1982 1983
|
||||||
|
31 1984 1985
|
||||||
|
32 1986 1987
|
||||||
|
33 1988 1989
|
||||||
|
34 1990 1991
|
||||||
|
35 1992 1993
|
||||||
|
36 1994 1994
|
||||||
|
37 1995 1996
|
||||||
|
38 1997 1997
|
||||||
|
39 1998 1998
|
||||||
|
40 1999 1999
|
||||||
|
41 2000 2000
|
||||||
|
42 2001 2001
|
||||||
|
43 2002 2002
|
||||||
|
44 2003 2003
|
||||||
|
45 2004 2004
|
||||||
|
46 2005 2005
|
||||||
|
47 2006 2006
|
||||||
|
48 2007 2007
|
||||||
|
49 2008 2008
|
||||||
|
50 2009 2009
|
||||||
|
51 2010 2010
|
||||||
|
52 2011 2011
|
||||||
|
53 2012 2012
|
||||||
|
54 2013 2013
|
||||||
|
55 2014 2014
|
||||||
|
56 2015 2015
|
||||||
|
57 2016 2016
|
||||||
|
58 2017 2017
|
||||||
|
59 2018 2018
|
63925
data/yago11k/train.txt
Normal file
63925
data/yago11k/train.txt
Normal file
File diff suppressed because it is too large
Load Diff
7198
data/yago11k/valid.txt
Normal file
7198
data/yago11k/valid.txt
Normal file
File diff suppressed because it is too large
Load Diff
18
main.py
18
main.py
@ -81,8 +81,17 @@ class Main(object):
|
|||||||
rel_set.add(rel)
|
rel_set.add(rel)
|
||||||
ent_set.add(obj)
|
ent_set.add(obj)
|
||||||
|
|
||||||
self.ent2id = {ent: idx for idx, ent in enumerate(ent_set)}
|
self.ent2id = {}
|
||||||
self.rel2id = {rel: idx for idx, rel in enumerate(rel_set)}
|
for line in open('./data/{}/{}'.format(self.p.dataset, "entities.dict")):
|
||||||
|
id, ent = map(str.lower, line.strip().split('\t'))
|
||||||
|
self.ent2id[ent] = int(id)
|
||||||
|
self.rel2id = {}
|
||||||
|
for line in open('./data/{}/{}'.format(self.p.dataset, "relations.dict")):
|
||||||
|
id, rel = map(str.lower, line.strip().split('\t'))
|
||||||
|
self.rel2id[rel] = int(id)
|
||||||
|
|
||||||
|
# self.ent2id = {ent: idx for idx, ent in enumerate(ent_set)}
|
||||||
|
# self.rel2id = {rel: idx for idx, rel in enumerate(rel_set)}
|
||||||
self.rel2id.update({rel+'_reverse': idx+len(self.rel2id)
|
self.rel2id.update({rel+'_reverse': idx+len(self.rel2id)
|
||||||
for idx, rel in enumerate(rel_set)})
|
for idx, rel in enumerate(rel_set)})
|
||||||
|
|
||||||
@ -569,9 +578,9 @@ if __name__ == "__main__":
|
|||||||
help='Dropout for Feature. Default: 0.5. Test: 0.2, 0.3, 0.4, 0.5')
|
help='Dropout for Feature. Default: 0.5. Test: 0.2, 0.3, 0.4, 0.5')
|
||||||
parser.add_argument('--inp_drop', dest="inp_drop", default=0.2, type=float,
|
parser.add_argument('--inp_drop', dest="inp_drop", default=0.2, type=float,
|
||||||
help='Dropout for Input layer. Default: 0.5. Test: 0.2, 0.3, 0.4, 0.5')
|
help='Dropout for Input layer. Default: 0.5. Test: 0.2, 0.3, 0.4, 0.5')
|
||||||
parser.add_argument('--drop_path', dest="drop_path", default=0.1, type=float,
|
parser.add_argument('--drop_path', dest="drop_path", default=0.0, type=float,
|
||||||
help='Path dropout. Default: 0.5. Test: 0.2, 0.3, 0.4, 0.5')
|
help='Path dropout. Default: 0.5. Test: 0.2, 0.3, 0.4, 0.5')
|
||||||
parser.add_argument('--drop', dest="drop", default=0.2, type=float,
|
parser.add_argument('--drop', dest="drop", default=0.0, type=float,
|
||||||
help='Inner drop. Default: 0.5. Test: 0.2, 0.3, 0.4, 0.5')
|
help='Inner drop. Default: 0.5. Test: 0.2, 0.3, 0.4, 0.5')
|
||||||
|
|
||||||
# Configuration for in/output channels for ConvE, HypER, HypE
|
# Configuration for in/output channels for ConvE, HypER, HypE
|
||||||
@ -616,6 +625,7 @@ if __name__ == "__main__":
|
|||||||
default='./config/', help='Config directory')
|
default='./config/', help='Config directory')
|
||||||
|
|
||||||
parser.add_argument('--test_only', action='store_true', default=False)
|
parser.add_argument('--test_only', action='store_true', default=False)
|
||||||
|
parser.add_argument('--filtered', action='store_true', default=False)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
401
pvt.py
401
pvt.py
@ -1,401 +0,0 @@
|
|||||||
import torch
|
|
||||||
import torch.nn as nn
|
|
||||||
import torch.nn.functional as F
|
|
||||||
from functools import partial
|
|
||||||
|
|
||||||
from timm.models.layers import DropPath, to_2tuple, trunc_normal_
|
|
||||||
from timm.models.registry import register_model
|
|
||||||
from timm.models.vision_transformer import _cfg
|
|
||||||
import math
|
|
||||||
|
|
||||||
|
|
||||||
class Mlp(nn.Module):
|
|
||||||
def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0., linear=False):
|
|
||||||
super().__init__()
|
|
||||||
out_features = out_features or in_features
|
|
||||||
hidden_features = hidden_features or in_features
|
|
||||||
self.fc1 = nn.Linear(in_features, hidden_features)
|
|
||||||
self.dwconv = DWConv(hidden_features)
|
|
||||||
self.act = act_layer()
|
|
||||||
self.fc2 = nn.Linear(hidden_features, out_features)
|
|
||||||
self.drop = nn.Dropout(drop)
|
|
||||||
self.linear = linear
|
|
||||||
if self.linear:
|
|
||||||
self.relu = nn.ReLU(inplace=True)
|
|
||||||
self.apply(self._init_weights)
|
|
||||||
|
|
||||||
def _init_weights(self, m):
|
|
||||||
if isinstance(m, nn.Linear):
|
|
||||||
trunc_normal_(m.weight, std=.02)
|
|
||||||
if isinstance(m, nn.Linear) and m.bias is not None:
|
|
||||||
nn.init.constant_(m.bias, 0)
|
|
||||||
elif isinstance(m, nn.LayerNorm):
|
|
||||||
nn.init.constant_(m.bias, 0)
|
|
||||||
nn.init.constant_(m.weight, 1.0)
|
|
||||||
elif isinstance(m, nn.Conv2d):
|
|
||||||
fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
|
|
||||||
fan_out //= m.groups
|
|
||||||
m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
|
|
||||||
if m.bias is not None:
|
|
||||||
m.bias.data.zero_()
|
|
||||||
|
|
||||||
def forward(self, x, H, W):
|
|
||||||
x = self.fc1(x)
|
|
||||||
if self.linear:
|
|
||||||
x = self.relu(x)
|
|
||||||
x = self.dwconv(x, H, W)
|
|
||||||
x = self.act(x)
|
|
||||||
x = self.drop(x)
|
|
||||||
x = self.fc2(x)
|
|
||||||
x = self.drop(x)
|
|
||||||
return x
|
|
||||||
|
|
||||||
|
|
||||||
class Attention(nn.Module):
|
|
||||||
def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1, linear=False):
|
|
||||||
super().__init__()
|
|
||||||
assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."
|
|
||||||
|
|
||||||
self.dim = dim
|
|
||||||
self.num_heads = num_heads
|
|
||||||
head_dim = dim // num_heads
|
|
||||||
self.scale = qk_scale or head_dim ** -0.5
|
|
||||||
|
|
||||||
self.q = nn.Linear(dim, dim, bias=qkv_bias)
|
|
||||||
self.kv = nn.Linear(dim, dim * 2, bias=qkv_bias)
|
|
||||||
self.attn_drop = nn.Dropout(attn_drop)
|
|
||||||
self.proj = nn.Linear(dim, dim)
|
|
||||||
self.proj_drop = nn.Dropout(proj_drop)
|
|
||||||
|
|
||||||
self.linear = linear
|
|
||||||
self.sr_ratio = sr_ratio
|
|
||||||
if not linear:
|
|
||||||
if sr_ratio > 1:
|
|
||||||
self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
|
|
||||||
self.norm = nn.LayerNorm(dim)
|
|
||||||
else:
|
|
||||||
self.pool = nn.AdaptiveAvgPool2d(7)
|
|
||||||
self.sr = nn.Conv2d(dim, dim, kernel_size=1, stride=1)
|
|
||||||
self.norm = nn.LayerNorm(dim)
|
|
||||||
self.act = nn.GELU()
|
|
||||||
self.apply(self._init_weights)
|
|
||||||
|
|
||||||
def _init_weights(self, m):
|
|
||||||
if isinstance(m, nn.Linear):
|
|
||||||
trunc_normal_(m.weight, std=.02)
|
|
||||||
if isinstance(m, nn.Linear) and m.bias is not None:
|
|
||||||
nn.init.constant_(m.bias, 0)
|
|
||||||
elif isinstance(m, nn.LayerNorm):
|
|
||||||
nn.init.constant_(m.bias, 0)
|
|
||||||
nn.init.constant_(m.weight, 1.0)
|
|
||||||
elif isinstance(m, nn.Conv2d):
|
|
||||||
fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
|
|
||||||
fan_out //= m.groups
|
|
||||||
m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
|
|
||||||
if m.bias is not None:
|
|
||||||
m.bias.data.zero_()
|
|
||||||
|
|
||||||
def forward(self, x, H, W):
|
|
||||||
B, N, C = x.shape
|
|
||||||
q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3)
|
|
||||||
|
|
||||||
if not self.linear:
|
|
||||||
if self.sr_ratio > 1:
|
|
||||||
x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
|
|
||||||
x_ = self.sr(x_).reshape(B, C, -1).permute(0, 2, 1)
|
|
||||||
x_ = self.norm(x_)
|
|
||||||
kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
|
|
||||||
else:
|
|
||||||
kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
|
|
||||||
else:
|
|
||||||
x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
|
|
||||||
x_ = self.sr(self.pool(x_)).reshape(B, C, -1).permute(0, 2, 1)
|
|
||||||
x_ = self.norm(x_)
|
|
||||||
x_ = self.act(x_)
|
|
||||||
kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
|
|
||||||
k, v = kv[0], kv[1]
|
|
||||||
|
|
||||||
attn = (q @ k.transpose(-2, -1)) * self.scale
|
|
||||||
attn = attn.softmax(dim=-1)
|
|
||||||
attn = self.attn_drop(attn)
|
|
||||||
|
|
||||||
x = (attn @ v).transpose(1, 2).reshape(B, N, C)
|
|
||||||
x = self.proj(x)
|
|
||||||
x = self.proj_drop(x)
|
|
||||||
|
|
||||||
return x
|
|
||||||
|
|
||||||
|
|
||||||
class Block(nn.Module):
|
|
||||||
|
|
||||||
def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
|
|
||||||
drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False):
|
|
||||||
super().__init__()
|
|
||||||
self.norm1 = norm_layer(dim)
|
|
||||||
self.attn = Attention(
|
|
||||||
dim,
|
|
||||||
num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,
|
|
||||||
attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear)
|
|
||||||
# NOTE: drop path for stochastic depth, we shall see if this is better than dropout here
|
|
||||||
self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
|
|
||||||
self.norm2 = norm_layer(dim)
|
|
||||||
mlp_hidden_dim = int(dim * mlp_ratio)
|
|
||||||
self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop, linear=linear)
|
|
||||||
|
|
||||||
self.apply(self._init_weights)
|
|
||||||
|
|
||||||
def _init_weights(self, m):
|
|
||||||
if isinstance(m, nn.Linear):
|
|
||||||
trunc_normal_(m.weight, std=.02)
|
|
||||||
if isinstance(m, nn.Linear) and m.bias is not None:
|
|
||||||
nn.init.constant_(m.bias, 0)
|
|
||||||
elif isinstance(m, nn.LayerNorm):
|
|
||||||
nn.init.constant_(m.bias, 0)
|
|
||||||
nn.init.constant_(m.weight, 1.0)
|
|
||||||
elif isinstance(m, nn.Conv2d):
|
|
||||||
fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
|
|
||||||
fan_out //= m.groups
|
|
||||||
m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
|
|
||||||
if m.bias is not None:
|
|
||||||
m.bias.data.zero_()
|
|
||||||
|
|
||||||
def forward(self, x, H, W):
|
|
||||||
x = x + self.drop_path(self.attn(self.norm1(x), H, W))
|
|
||||||
x = x + self.drop_path(self.mlp(self.norm2(x), H, W))
|
|
||||||
|
|
||||||
return x
|
|
||||||
|
|
||||||
|
|
||||||
class OverlapPatchEmbed(nn.Module):
|
|
||||||
""" Image to Patch Embedding
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, img_size=224, patch_size=7, stride=4, in_chans=3, embed_dim=768):
|
|
||||||
super().__init__()
|
|
||||||
|
|
||||||
img_size = to_2tuple(img_size)
|
|
||||||
patch_size = to_2tuple(patch_size)
|
|
||||||
|
|
||||||
assert max(patch_size) > stride, "Set larger patch_size than stride"
|
|
||||||
|
|
||||||
self.img_size = img_size
|
|
||||||
self.patch_size = patch_size
|
|
||||||
self.H, self.W = img_size[0] // stride, img_size[1] // stride
|
|
||||||
self.num_patches = self.H * self.W
|
|
||||||
self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=stride,
|
|
||||||
padding=(patch_size[0] // 2, patch_size[1] // 2))
|
|
||||||
self.norm = nn.LayerNorm(embed_dim)
|
|
||||||
|
|
||||||
self.apply(self._init_weights)
|
|
||||||
|
|
||||||
def _init_weights(self, m):
|
|
||||||
if isinstance(m, nn.Linear):
|
|
||||||
trunc_normal_(m.weight, std=.02)
|
|
||||||
if isinstance(m, nn.Linear) and m.bias is not None:
|
|
||||||
nn.init.constant_(m.bias, 0)
|
|
||||||
elif isinstance(m, nn.LayerNorm):
|
|
||||||
nn.init.constant_(m.bias, 0)
|
|
||||||
nn.init.constant_(m.weight, 1.0)
|
|
||||||
elif isinstance(m, nn.Conv2d):
|
|
||||||
fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
|
|
||||||
fan_out //= m.groups
|
|
||||||
m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
|
|
||||||
if m.bias is not None:
|
|
||||||
m.bias.data.zero_()
|
|
||||||
|
|
||||||
def forward(self, x):
|
|
||||||
x = self.proj(x)
|
|
||||||
_, _, H, W = x.shape
|
|
||||||
x = x.flatten(2).transpose(1, 2)
|
|
||||||
x = self.norm(x)
|
|
||||||
|
|
||||||
return x, H, W
|
|
||||||
|
|
||||||
|
|
||||||
class PyramidVisionTransformerV2(nn.Module):
|
|
||||||
def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classes=1000, embed_dims=[64, 128, 256, 512],
|
|
||||||
num_heads=[1, 2, 4, 8], mlp_ratios=[4, 4, 4, 4], qkv_bias=False, qk_scale=None, drop_rate=0.,
|
|
||||||
attn_drop_rate=0., drop_path_rate=0., norm_layer=nn.LayerNorm,
|
|
||||||
depths=[3, 4, 6, 3], sr_ratios=[8, 4, 2, 1], num_stages=4, linear=False):
|
|
||||||
super().__init__()
|
|
||||||
self.num_classes = num_classes
|
|
||||||
self.depths = depths
|
|
||||||
self.num_stages = num_stages
|
|
||||||
|
|
||||||
dpr = [x.item() for x in torch.linspace(0, drop_path_rate, sum(depths))] # stochastic depth decay rule
|
|
||||||
cur = 0
|
|
||||||
|
|
||||||
for i in range(num_stages):
|
|
||||||
patch_embed = OverlapPatchEmbed(img_size=img_size if i == 0 else img_size // (2 ** (i + 1)),
|
|
||||||
patch_size=7 if i == 0 else 3,
|
|
||||||
stride=4 if i == 0 else 2,
|
|
||||||
in_chans=in_chans if i == 0 else embed_dims[i - 1],
|
|
||||||
embed_dim=embed_dims[i])
|
|
||||||
|
|
||||||
block = nn.ModuleList([Block(
|
|
||||||
dim=embed_dims[i], num_heads=num_heads[i], mlp_ratio=mlp_ratios[i], qkv_bias=qkv_bias, qk_scale=qk_scale,
|
|
||||||
drop=drop_rate, attn_drop=attn_drop_rate, drop_path=dpr[cur + j], norm_layer=norm_layer,
|
|
||||||
sr_ratio=sr_ratios[i], linear=linear)
|
|
||||||
for j in range(depths[i])])
|
|
||||||
norm = norm_layer(embed_dims[i])
|
|
||||||
cur += depths[i]
|
|
||||||
|
|
||||||
setattr(self, f"patch_embed{i + 1}", patch_embed)
|
|
||||||
setattr(self, f"block{i + 1}", block)
|
|
||||||
setattr(self, f"norm{i + 1}", norm)
|
|
||||||
|
|
||||||
# classification head
|
|
||||||
self.head = nn.Linear(embed_dims[3], num_classes) if num_classes > 0 else nn.Identity()
|
|
||||||
|
|
||||||
self.apply(self._init_weights)
|
|
||||||
|
|
||||||
def _init_weights(self, m):
|
|
||||||
if isinstance(m, nn.Linear):
|
|
||||||
trunc_normal_(m.weight, std=.02)
|
|
||||||
if isinstance(m, nn.Linear) and m.bias is not None:
|
|
||||||
nn.init.constant_(m.bias, 0)
|
|
||||||
elif isinstance(m, nn.LayerNorm):
|
|
||||||
nn.init.constant_(m.bias, 0)
|
|
||||||
nn.init.constant_(m.weight, 1.0)
|
|
||||||
elif isinstance(m, nn.Conv2d):
|
|
||||||
fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
|
|
||||||
fan_out //= m.groups
|
|
||||||
m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
|
|
||||||
if m.bias is not None:
|
|
||||||
m.bias.data.zero_()
|
|
||||||
|
|
||||||
def freeze_patch_emb(self):
|
|
||||||
self.patch_embed1.requires_grad = False
|
|
||||||
|
|
||||||
@torch.jit.ignore
|
|
||||||
def no_weight_decay(self):
|
|
||||||
return {'pos_embed1', 'pos_embed2', 'pos_embed3', 'pos_embed4', 'cls_token'} # has pos_embed may be better
|
|
||||||
|
|
||||||
def get_classifier(self):
|
|
||||||
return self.head
|
|
||||||
|
|
||||||
def reset_classifier(self, num_classes, global_pool=''):
|
|
||||||
self.num_classes = num_classes
|
|
||||||
self.head = nn.Linear(self.embed_dim, num_classes) if num_classes > 0 else nn.Identity()
|
|
||||||
|
|
||||||
def forward_features(self, x):
|
|
||||||
B = x.shape[0]
|
|
||||||
|
|
||||||
for i in range(self.num_stages):
|
|
||||||
patch_embed = getattr(self, f"patch_embed{i + 1}")
|
|
||||||
block = getattr(self, f"block{i + 1}")
|
|
||||||
norm = getattr(self, f"norm{i + 1}")
|
|
||||||
x, H, W = patch_embed(x)
|
|
||||||
for blk in block:
|
|
||||||
x = blk(x, H, W)
|
|
||||||
x = norm(x)
|
|
||||||
if i != self.num_stages - 1:
|
|
||||||
x = x.reshape(B, H, W, -1).permute(0, 3, 1, 2).contiguous()
|
|
||||||
|
|
||||||
return x.mean(dim=1)
|
|
||||||
|
|
||||||
def forward(self, x):
|
|
||||||
x = self.forward_features(x)
|
|
||||||
x = self.head(x)
|
|
||||||
|
|
||||||
return x
|
|
||||||
|
|
||||||
|
|
||||||
class DWConv(nn.Module):
|
|
||||||
def __init__(self, dim=768):
|
|
||||||
super(DWConv, self).__init__()
|
|
||||||
self.dwconv = nn.Conv2d(dim, dim, 3, 1, 1, bias=True, groups=dim)
|
|
||||||
|
|
||||||
def forward(self, x, H, W):
|
|
||||||
B, N, C = x.shape
|
|
||||||
x = x.transpose(1, 2).view(B, C, H, W)
|
|
||||||
x = self.dwconv(x)
|
|
||||||
x = x.flatten(2).transpose(1, 2)
|
|
||||||
|
|
||||||
return x
|
|
||||||
|
|
||||||
|
|
||||||
def _conv_filter(state_dict, patch_size=16):
|
|
||||||
""" convert patch embedding weight from manual patchify + linear proj to conv"""
|
|
||||||
out_dict = {}
|
|
||||||
for k, v in state_dict.items():
|
|
||||||
if 'patch_embed.proj.weight' in k:
|
|
||||||
v = v.reshape((v.shape[0], 3, patch_size, patch_size))
|
|
||||||
out_dict[k] = v
|
|
||||||
|
|
||||||
return out_dict
|
|
||||||
|
|
||||||
|
|
||||||
@register_model
|
|
||||||
def pvt_v2_b0(pretrained=False, **kwargs):
|
|
||||||
model = PyramidVisionTransformerV2(
|
|
||||||
patch_size=4, embed_dims=[32, 64, 160, 256], num_heads=[1, 2, 5, 8], mlp_ratios=[8, 8, 4, 4], qkv_bias=True,
|
|
||||||
norm_layer=partial(nn.LayerNorm, eps=1e-6), depths=[2, 2, 2, 2], sr_ratios=[8, 4, 2, 1],
|
|
||||||
**kwargs)
|
|
||||||
model.default_cfg = _cfg()
|
|
||||||
|
|
||||||
return model
|
|
||||||
|
|
||||||
|
|
||||||
@register_model
|
|
||||||
def pvt_v2_b1(pretrained=False, **kwargs):
|
|
||||||
model = PyramidVisionTransformerV2(
|
|
||||||
patch_size=4, embed_dims=[64, 128, 320, 512], num_heads=[1, 2, 5, 8], mlp_ratios=[8, 8, 4, 4], qkv_bias=True,
|
|
||||||
norm_layer=partial(nn.LayerNorm, eps=1e-6), depths=[2, 2, 2, 2], sr_ratios=[8, 4, 2, 1],
|
|
||||||
**kwargs)
|
|
||||||
model.default_cfg = _cfg()
|
|
||||||
|
|
||||||
return model
|
|
||||||
|
|
||||||
|
|
||||||
@register_model
|
|
||||||
def pvt_v2_b2(pretrained=False, **kwargs):
|
|
||||||
model = PyramidVisionTransformerV2(
|
|
||||||
patch_size=4, embed_dims=[64, 128, 320, 512], num_heads=[1, 2, 5, 8], mlp_ratios=[8, 8, 4, 4], qkv_bias=True,
|
|
||||||
norm_layer=partial(nn.LayerNorm, eps=1e-6), depths=[3, 4, 6, 3], sr_ratios=[8, 4, 2, 1], **kwargs)
|
|
||||||
model.default_cfg = _cfg()
|
|
||||||
|
|
||||||
return model
|
|
||||||
|
|
||||||
|
|
||||||
@register_model
|
|
||||||
def pvt_v2_b3(pretrained=False, **kwargs):
|
|
||||||
model = PyramidVisionTransformerV2(
|
|
||||||
patch_size=4, embed_dims=[64, 128, 320, 512], num_heads=[1, 2, 5, 8], mlp_ratios=[8, 8, 4, 4], qkv_bias=True,
|
|
||||||
norm_layer=partial(nn.LayerNorm, eps=1e-6), depths=[3, 4, 18, 3], sr_ratios=[8, 4, 2, 1],
|
|
||||||
**kwargs)
|
|
||||||
model.default_cfg = _cfg()
|
|
||||||
|
|
||||||
return model
|
|
||||||
|
|
||||||
|
|
||||||
@register_model
|
|
||||||
def pvt_v2_b4(pretrained=False, **kwargs):
|
|
||||||
model = PyramidVisionTransformerV2(
|
|
||||||
patch_size=4, embed_dims=[64, 128, 320, 512], num_heads=[1, 2, 5, 8], mlp_ratios=[8, 8, 4, 4], qkv_bias=True,
|
|
||||||
norm_layer=partial(nn.LayerNorm, eps=1e-6), depths=[3, 8, 27, 3], sr_ratios=[8, 4, 2, 1],
|
|
||||||
**kwargs)
|
|
||||||
model.default_cfg = _cfg()
|
|
||||||
|
|
||||||
return model
|
|
||||||
|
|
||||||
|
|
||||||
@register_model
|
|
||||||
def pvt_v2_b5(pretrained=False, **kwargs):
|
|
||||||
model = PyramidVisionTransformerV2(
|
|
||||||
patch_size=4, embed_dims=[64, 128, 320, 512], num_heads=[1, 2, 5, 8], mlp_ratios=[4, 4, 4, 4], qkv_bias=True,
|
|
||||||
norm_layer=partial(nn.LayerNorm, eps=1e-6), depths=[3, 6, 40, 3], sr_ratios=[8, 4, 2, 1],
|
|
||||||
**kwargs)
|
|
||||||
model.default_cfg = _cfg()
|
|
||||||
|
|
||||||
return model
|
|
||||||
|
|
||||||
|
|
||||||
@register_model
|
|
||||||
def pvt_v2_b2_li(pretrained=False, **kwargs):
|
|
||||||
model = PyramidVisionTransformerV2(
|
|
||||||
patch_size=4, embed_dims=[64, 128, 320, 512], num_heads=[1, 2, 5, 8], mlp_ratios=[8, 8, 4, 4], qkv_bias=True,
|
|
||||||
norm_layer=partial(nn.LayerNorm, eps=1e-6), depths=[3, 4, 6, 3], sr_ratios=[8, 4, 2, 1], linear=True, **kwargs)
|
|
||||||
model.default_cfg = _cfg()
|
|
||||||
|
|
||||||
return model
|
|
Loading…
Reference in New Issue
Block a user