@@ -15,8 +15,16 @@ def __new__(cls, *args):
1515 assert ident == 'storage'
1616
1717 assert prod (args [2 ]) == obj_size
18+
19+
1820 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+
2028 return ret
2129
2230 class HackParameter :
@@ -62,12 +70,17 @@ def fake_torch_load_zipped(fb0, load_weights=True):
6270 with myzip .open (folder_name + '/data.pkl' ) as myfile :
6371 ret = my_unpickle (myfile )
6472 if load_weights :
65- for k ,v in ret [1 ].items ():
73+ for k , v_arr in ret [1 ].items ():
6674 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 ]))
7184 return ret [0 ]
7285
7386def fake_torch_load (b0 ):
0 commit comments