@@ -16,8 +16,16 @@ def __new__(cls, *args):
1616 assert ident == 'storage'
1717
1818 assert prod (args [2 ]) == obj_size
19+
20+
1921 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+
2129 return ret
2230
2331 class HackParameter :
@@ -78,12 +86,17 @@ def fake_torch_load_zipped(fb0, load_weights=True):
7886 with myzip .open (folder_name + '/data.pkl' ) as myfile :
7987 ret = my_unpickle (myfile )
8088 if load_weights :
81- for k ,v in ret [1 ].items ():
89+ for k , v_arr in ret [1 ].items ():
8290 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 ]))
87100 return ret [0 ]
88101
89102def fake_torch_load (b0 ):
0 commit comments