pytorch模型保存与加载:state_dict、load_state_dict

2023-05-16

简而言之,pytorch保存模型时用的映射关系。

pytorch中的state_dict是一个简单的python字典对象,将每一层与之对应的参数建立映射关系。只有参数可训练的layer才会保存到模型 的state_dict中,如卷积层、线性层。

优化器optimizer也有一个state_dict,包含了优化器的状态以及被使用的超参数(lr、momentum、weight_decay)

state_dict是定义了model或optimizer之后pytorch自动生成的,可直接调用。常用的保存state_dict格式是‘.pt’或‘.pth’的文件。

仅保存学习到的参数代码:

path='./***.pt'
torch.save( model.state_dict(), path)

加载模型

model=TheModelClass(*args,**kwargs)
model.load_state_dict(torch.load(path))
model.eval()

model.eval(),其中eval的意思是评估。在执行model.eval()是因为只有在执行该命令后,‘dropout层’及‘batch normalization层’才会进入evaluation模态,而在training与evalution下,两层有不同的表现形式。

state_dict是python字典格式,以字典格式存储,以字典格式被加载,而且只加载key匹配的项

加载某一层训练得到的参数

conv1_weight_state=torch.load('./model_state_dict.pt')['conv1.weight']

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pytorch模型保存与加载:state_dict、load_state_dict 的相关文章

  • 为什么我在这里遇到被零除的错误?

    所以我正在关注这个文档中的教程 https pytorch org tutorials beginner data loading tutorial html在自定义数据集上 我使用的是 MNIST 数据集 而不是教程中的奇特数据集 这是D
  • torch-1.1.0-cp37-cp37m-win_amd64.whl 在此平台上不受支持的滚轮

    我在开发 RNN 时需要使用 pyTorch 每当我尝试安装它时 我都会收到一条错误消息 指出 torch 1 1 0 cp37 cp37m win amd32 whl 在此平台上不受支持 pip3安装https download pyto
  • 在 ghci 中跟踪历史

    历史管理在 GHCI 或其他基于 Haskell 的 REPL 中如何工作 由于 Haskell 是一种纯语言 我猜它是使用 monad 实现的 也许是状态单子 http learnyouahaskell com for a few mon
  • 尝试理解 Pytorch 的 LSTM 实现

    我有一个包含 1000 个示例的数据集 其中每个示例都有5特征 a b c d e 我想喂7LSTM 的示例 以便它预测第 8 天的特征 a 阅读 nn LSTM 的 Pytorchs 文档 我得出以下结论 input size 5 hid
  • PyTorch:如何检查训练期间某些权重是否没有改变?

    如何检查 PyTorch 训练期间某些权重是否未更改 据我了解 一种选择可以是在某些时期转储模型权重 并检查它们是否通过迭代权重进行更改 但也许有一些更简单的方法 有两种方法可以解决这个问题 First for name param in
  • Redux 不就是美化了全局状态吗?

    所以我一周前开始学习 React 我不可避免地遇到了状态问题以及组件应该如何与应用程序的其余部分进行通信 我四处搜寻了一下 Redux 似乎是这个月的热门 我通读了所有文档 我认为这实际上是一个相当革命性的想法 以下是我的想法 人们普遍认为
  • 将 sharepoint 2007 webpart 加载到 microsoft online emea?

    我在我的 Visual Studio 2007 中实现了 Web 部件 Hello World 项目中有 webpart cs webpart xml 和 webpart webpart 文件 我构建了洞项目 并尝试加载webpart we
  • 如何使用react-router维护状态

    我有一个 React 应用程序 其中包含一个保存初始状态的主 App js 文件 然后 我设置了一些路线来导航我的应用程序 在其中一条路线中 我有一个按钮 按下该按钮会处理设置的状态 我知道这是有效的 因为我已经控制台记录了状态的变化 然而
  • Angular Digest 循环正在运行,但 ng-bind 值未更新

    我有一个包含导航栏的父视图 在该视图内部我有一个 div 渲染我所在的任何子视图的元素 我想根据子视图的路线有条件地显示 隐藏父视图中的导航栏 现在 我有这个 div
  • 重置流的状态

    我有一个问题与 stackoverflow 上的这个问题有点相似std cin clear 无法将输入流恢复到良好状态 https stackoverflow com questions 4960399 stdcin clear fails
  • 如何使用pytorch构建多任务DNN,例如超过100个任务?

    下面是使用 pytorch 为两个回归任务构建 DNN 的示例代码 这forward函数返回两个输出 x1 x2 用于大量回归 分类任务的网络怎么样 例如 100 或 1000 个输出 对所有输出 例如 x1 x2 x100 进行硬编码绝对
  • Pytorch CUDA 错误:没有内核映像可用于在带有 cuda 11.1 的 RTX 3090 设备上执行

    如果我运行以下命令 import torch import sys print A sys version print B torch version print C torch cuda is available print D torc
  • Pytorch GPU 使用率低

    我正在尝试 pytorch 的例子https pytorch org tutorials beginner blitz cifar10 tutorial html https pytorch org tutorials beginner b
  • 如何从已安装的云端硬盘文件夹中永久删除?

    我编写了一个脚本 在每次迭代后将我的模型和训练示例上传到 Google Drive 以防发生崩溃或任何阻止笔记本运行的情况 如下所示 drive path drive My Drive Colab Notebooks models if p
  • 图像上的 JQuery 加载事件

    我想在加载图像时将图像父级的大小调整为与图像相同的大小 此时我正在使用这段代码 window load function image principale each function this parent css height this
  • React Native 将样式设置为 State

    我想用backgroundColor of style1作为一种状态 并在函数中改变它change 我怎样才能访问style1 我的观点是调用该函数change从另一个函数 使按钮将其颜色更改为黄色 然后在一段时间后再次将其颜色更改为蓝色
  • 如何将数组与 setState 一起使用?

    我目前正在使用以下命令将数组映射到 setState 但没有设置任何内容 也没有记录任何错误 如果我明确地逐行写出它 它就会起作用 关于如何解决这个问题有什么想法或建议吗 使用数组设置状态 不设置状态 const myData messag
  • Pytorch 与 joblib 的 autograd 问题

    将 pytorch 的 autograd 与 joblib 混合似乎存在问题 我需要并行获取大量样本的梯度 Joblib 与 pytorch 的其他方面配合良好 但是 与 autograd 混合时会出现错误 我做了一个非常小的例子 显示串行
  • TensorFlow 相当于 PyTorch 的 Transforms.Normalize()

    我正在尝试推断最初在 PyTorch 中构建的 TFLite 模型 我一直在遵循PyTorch 实现 https github com leoxiaobin deep high resolution net pytorch blob 1ee
  • PyTorch 给出 cuda 运行时错误

    我对我的代码做了一些小小的修改 以便它不使用 DataParallel and DistributedDataParallel 代码如下 import argparse import os import shutil import time

随机推荐