@@ -16,8 +16,16 @@ def __new__(cls, *args):
16
16
assert ident == 'storage'
17
17
18
18
assert prod (args [2 ]) == obj_size
19
+
20
+
19
21
ret = np .zeros (args [2 ], dtype = storage_type )
20
- key_prelookup [obj_key ] = (storage_type , obj_size , ret , args [2 ], args [3 ])
22
+ if obj_key not in key_prelookup :
23
+ key_prelookup [obj_key ] = []
24
+
25
+ key_prelookup [obj_key ].append ((storage_type , obj_size , ret , args [2 ], args [3 ]))
26
+
27
+ #print(f"File: {obj_key}, references: {len(key_prelookup[obj_key])}, size: {args[2]}, storage_type: {storage_type}")
28
+
21
29
return ret
22
30
23
31
class HackParameter :
@@ -78,12 +86,17 @@ def fake_torch_load_zipped(fb0, load_weights=True):
78
86
with myzip .open (folder_name + '/data.pkl' ) as myfile :
79
87
ret = my_unpickle (myfile )
80
88
if load_weights :
81
- for k ,v in ret [1 ].items ():
89
+ for k , v_arr in ret [1 ].items ():
82
90
with myzip .open (folder_name + f'/data/{ k } ' ) as myfile :
83
- if v [2 ].dtype == "object" :
84
- print (f"issue assigning object on { k } " )
85
- continue
86
- np .copyto (v [2 ], np .frombuffer (myfile .read (), v [2 ].dtype ).reshape (v [3 ]))
91
+ #print(f"Eating data file {k} now")
92
+ file_data = myfile .read ()
93
+ for v in v_arr :
94
+ if v [2 ].dtype == "object" :
95
+ print (f"issue assigning object on { k } " )
96
+ continue
97
+ #weight = np.frombuffer(file_data, v[2].dtype).reshape(v[3])
98
+ #np.copyto(v[2], weight)
99
+ np .copyto (v [2 ], np .frombuffer (file_data , v [2 ].dtype ).reshape (v [3 ]))
87
100
return ret [0 ]
88
101
89
102
def fake_torch_load (b0 ):
0 commit comments