@@ -15,8 +15,16 @@ def __new__(cls, *args):
15
15
assert ident == 'storage'
16
16
17
17
assert prod (args [2 ]) == obj_size
18
+
19
+
18
20
ret = np .zeros (args [2 ], dtype = storage_type )
19
- key_prelookup [obj_key ] = (storage_type , obj_size , ret , args [2 ], args [3 ])
21
+ if obj_key not in key_prelookup :
22
+ key_prelookup [obj_key ] = []
23
+
24
+ key_prelookup [obj_key ].append ((storage_type , obj_size , ret , args [2 ], args [3 ]))
25
+
26
+ #print(f"File: {obj_key}, references: {len(key_prelookup[obj_key])}, size: {args[2]}, storage_type: {storage_type}")
27
+
20
28
return ret
21
29
22
30
class HackParameter :
@@ -62,12 +70,17 @@ def fake_torch_load_zipped(fb0, load_weights=True):
62
70
with myzip .open (folder_name + '/data.pkl' ) as myfile :
63
71
ret = my_unpickle (myfile )
64
72
if load_weights :
65
- for k ,v in ret [1 ].items ():
73
+ for k , v_arr in ret [1 ].items ():
66
74
with myzip .open (folder_name + f'/data/{ k } ' ) as myfile :
67
- if v [2 ].dtype == "object" :
68
- print (f"issue assigning object on { k } " )
69
- continue
70
- np .copyto (v [2 ], np .frombuffer (myfile .read (), v [2 ].dtype ).reshape (v [3 ]))
75
+ #print(f"Eating data file {k} now")
76
+ file_data = myfile .read ()
77
+ for v in v_arr :
78
+ if v [2 ].dtype == "object" :
79
+ print (f"issue assigning object on { k } " )
80
+ continue
81
+ #weight = np.frombuffer(file_data, v[2].dtype).reshape(v[3])
82
+ #np.copyto(v[2], weight)
83
+ np .copyto (v [2 ], np .frombuffer (file_data , v [2 ].dtype ).reshape (v [3 ]))
71
84
return ret [0 ]
72
85
73
86
def fake_torch_load (b0 ):
0 commit comments