Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么每次保存时模型的哈希值都会更改?_Python_Pytorch - Fatal编程技术网

Python 为什么每次保存时模型的哈希值都会更改?

Python 为什么每次保存时模型的哈希值都会更改?,python,pytorch,Python,Pytorch,我正在使用torch.save()保存模型文件。但是,每次我保存它时,它都会更改。为什么会这样 netG_1 = torch.load('netG.pth') netG_2 = torch.load('netG.pth') torch.save(netG_1, 'netG_1.pth') torch.save(netG_2, 'netG_2.pth') 使用md5sum*.pth: 779f0fefca47d17a0644033f9b65e594 netG_1.pth 476f502ec2

我正在使用torch.save()保存模型文件。但是,每次我保存它时,它都会更改。为什么会这样

netG_1 = torch.load('netG.pth')
netG_2 = torch.load('netG.pth')

torch.save(netG_1, 'netG_1.pth')
torch.save(netG_2, 'netG_2.pth')
使用
md5sum*.pth

779f0fefca47d17a0644033f9b65e594  netG_1.pth
476f502ec2d1186c349cdeba14983d09  netG_2.pth
b0ceec8ac886a11b79f73fc04f51c6f9  netG.pth
该模型是此类的一个实例:


未定义
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。对于CPython,这意味着每次保存和重新加载实例时,它都会更改哈希值,因为它在内存中的位置发生了更改

这是一个概念证明

class Foo:
    pass

instance = Foo()

print('hash:', hex(hash(instance)))
print('id:  ', hex(id(instance)))
输出
确切的转换是
hash(o)==id(o)//16

```类测试:x=5通过m=Test()pickle.dump(m,open('m.p','w'))a=pickle.load(open('m.p','r'))b=pickle.load(open('m.p','r'))pickle.dump(a,open('a.p','w'))pickle.dump(b,open('b.p','w'))“``然后在执行
md5sum*.p
:``86cdcd4e714de83f18b519052470155f a.p 86cdcd4e714de83f18b519052470155f b.p 86cdcdcd4e714de83f18b519052470155f m.p``但是当我将同一类的两个实例保存到内存中时,它们的哈希值不应该相同吗?因为它们的内容相同,所以它们的哈希值可能相同,也可能不同。如前所述,如果没有定义
\uuuuu散列\uuuu
方法,则它们的内容是无关的。重要的是他们在记忆中的位置,可能相同,也可能不同。如果您希望哈希值基于其内容,请定义
\uuuu hash\uuuu
我说的是md5sum哈希值,它表示文件的内容。@canonball哦,那么您的整个问题与Python无关,而只与md5sum有关?
hash: 0x22f3f57608
id:   0x22f3f576080