torch.save()
pytorch有两种模型保存方式:
一、保存整个神经网络的的结构信息和模型参数信息,save的对象是网络net
二、只保存神经网络的训练模型参数,save的对象是net.state_dict()
对应两种保存模型的方式,pytorch也有两种加载模型的方式。对应第一种保存方式,加载模型时通过torch.load('.pth')直接初始化新的神经网络对象;对应第二种保存方式,需要首先导入对应的网络,再通过net.load_state_dict(torch.load('.pth'))完成模型参数的加载。
下面是两种对应的举例。
torch.save()和torch.load()举例:
当我们花费大量的精力训练完网络,下次预测数据时不想再(有时也不必再)训练一次时,这时候torch.save(),torch.load()就要登场了。
保存和加载模型参数有两种方式:
方式一:
torch.save(net.state_dict(),path):
功能:保存训练完的网络的各层参数(即weights和bias)
其中:net.state_dict()获取各层参数,path是文件存放路径(通常保存文件格式为.pt或.pth)
net2.load_state_dict(torch.load(path)):
功能:加载保存到path中的各层参数到神经网络
注意:不可以直接为torch.load_state_dict(path),此函数不能直接接收字符串类型参数
方式二:
torch.save(net,path):
功能:保存训练完的整个网络模型(不止weights和bias)
net2=torch.load(path):
功能:加载保存到path中的整个神经网络
说明:官方推荐方式一,原因自然是保存的内容少,速度会更快。