作者:铁合金在线 | 来源:互联网 | 2023-08-29 12:57
我正在尝试解开一个 pytorch 张量,但是将它回酸会在运行中产生不同的结果:
>>> import pickle
>>> tensor1 = pickle.load(f) # I cannot reproduce the issue with some minimal manually-created tensor, only with this specific file
>>> tensor2 = pickle.load(f)
>>> pickled_tensor1 = pickle.dumps(tensor1)
>>> pickled_tensor2 = pickle.dumps(tensor2)
>>> pickled_tensor1 == pickled_tensor2
False
下面分别是pickled_tensor1
和的值pickled_tensor2
:
b'x80x04x95x98x01x00x00x00x00x00x00x8cx0ctorch._utilsx94x8cx12_rebuild_tensor_v2x94x93x94(x8crtorch.storagex94x8cx10_load_from_bytesx94x93x94Brx01x00x00x80x02x8anlxfcx9cFxf9 jxa8Px19.x80x02Mxe9x03.x80x02}qx00(Xx10x00x00x00protocol_versionqx01Mxe9x03Xrx00x00x00little_endianqx02x88Xnx00x00x00type_sizesqx03}qx04(Xx05x00x00x00shortqx05Kx02Xx03x00x00x00intqx06Kx04Xx04x00x00x00longqx07Kx04uu.x80x02(Xx07x00x00x00storageqx00ctorchnFloatStoragenqx01Xx0fx00x00x00140382183041680qx02Xx03x00x00x00cpuqx03Kx04Ntqx04Q.x80x02]qx00Xx0fx00x00x00140382183041680qx01a.x04x00x00x00x00x00x00x00x00x00x00?x00x00x00x00x00x00x00x00x00x00x00?x94x85x94Rx94Kx00Kx02Kx02x86x94Kx02Kx01x86x94x89x8cx0bcollectionsx94x8cx0bOrderedDictx94x93x94)Rx94tx94Rx94.'
b'x80x04x95x98x01x00x00x00x00x00x00x8cx0ctorch._utilsx94x8cx12_rebuild_tensor_v2x94x93x94(x8crtorch.storagex94x8cx10_load_from_bytesx94x93x94Brx01x00x00x80x02x8anlxfcx9cFxf9 jxa8Px19.x80x02Mxe9x03.x80x02}qx00(Xx10x00x00x00protocol_versionqx01Mxe9x03Xrx00x00x00little_endianqx02x88Xnx00x00x00type_sizesqx03}qx04(Xx05x00x00x00shortqx05Kx02Xx03x00x00x00intqx06Kx04Xx04x00x00x00longqx07Kx04uu.x80x02(Xx07x00x00x00storageqx00ctorchnFloatStoragenqx01Xx0fx00x00x00140382172016592qx02Xx03x00x00x00cpuqx03Kx04Ntqx04Q.x80x02]qx00Xx0fx00x00x00140382172016592qx01a.x04x00x00x00x00x00x00x00x00x00x00?x00x00x00x00x00x00x00x00x00x00x00?x94x85x94Rx94Kx00Kx02Kx02x86x94Kx02Kx01x86x94x89x8cx0bcollectionsx94x8cx0bOrderedDictx94x93x94)Rx94tx94Rx94.'
我的问题是为什么会发生这种情况,我该如何防止这种情况发生?
我正在使用 Python 3.8;火炬 1.7.0
干杯,赫利卜。