Skip to content

Commit c77f09d

Browse files
committed
Merge branch 'restricted-unpickler' into no-pickle-importer
2 parents af674fe + 0a7ba3a commit c77f09d

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

backends/model_converter/fake_torch.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

7386
def fake_torch_load(b0):

0 commit comments

Comments
 (0)