pytorch保存tensor数据,pytorch 保存权重

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: