pytorch保存tensor数据,pytorch 保存权重
本文主要介绍基于python的pytorch来保存和恢复参数。为了恢复模型,我们需要用代码生成一个框架,然后从磁盘加载参数。以下具体介绍,可以参考各位朋友。
00-1010一、读写文件1。加载和保存张量2。加载和保存模型
目录
一、读写文件
进口火炬
从火炬进口nn
从torch.nn导入功能为F
导入操作系统
path=os.path.join(os.getcwd(),)
x=torch.arange(4)
torch.save(x,路径 x-file )
现在我们可以将存储在文件中的数据读回内存。
x2=torch.load(路径“x-file”)
x2
张量([0,1,2,3])
我们可以存储一个张量列表,然后把它们读回内存。
y=torch.zeros(4)
torch.save([x,y],路径 x-file )
x2,y2=torch.load(路径“x-file”)
(x2,y2)
(张量([0,1,2,3]),张量([0。 0. 0. 0.]))
我们甚至可以编写或阅读将字符串映射到张量的字典。当我们想要读取或写入模型中的所有权重时,这很方便。
mydict={x: x, y: y}
torch.save(mydict,path mydict )
mydict2=torch.load(mydict )
我的字典2
{x:张量([0,1,2,3]), y:张量([0。 0. 0. 0.])}
1.加载和保存张量
保存单个权重向量确实很有用,但是如果我们想保存整个模型并在以后加载它们,那么单独保存每个向量会很麻烦。毕竟我们可能有上百个参数分布在各处。深度学习框架提供了内置的功能来保存和加载整个网络。注意,在这里保存模型并不保存整个模型,而只是保存所有的参数。
为了恢复模型,我们需要用代码生成框架,然后从磁盘加载参数。
net=MLP()
X=torch.randn(size=(2,20))
Y=净值(X)
我们将模型的参数存储在一个名为“mlp.params”的文件中
torch.save(net.state_dict(), mlp.params )
为了恢复模型,我们实例化了原始多层感知器模型的备份。这里不需要随机初始化模型参数,而是直接读取文件中的参数。
克隆=MLP()
clone . load _ state _ dict(torch . load( MLP . params ))
clone.eval()
MLP(
(隐藏):线性(输入特征=20,输出特征=256,偏差=真)
(输出):线性(输入特征=256,输出特征=10,偏差=真)
)
因为两个实例具有相同的模型参数,所以当输入相同的x时,两个实例的计算结果应该是相同的。
Y_clone=clone(X)
Y_clone==Y
张量([[真,真,真,真,真,真,真,真,真,真,真,真,真],
[真,真,真,真,真,真,真,真,真,真,真,真]])
这就是关于pytorch的保存和恢复参数的基于python的介绍的文章。有关pytorch保存和恢复参数的更多信息,请搜索热门IT软件开发工作室以前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。