Pytorch测试神经网络时出现 RuntimeError:的解决方案

Pytorch测试神经网络时出现“RuntimeError: Error(s) in loading state_dict for Net”

解决方法:

load_state_dict(torch.load('net.pth')

在前,增加

model = nn.DataParallel(model)

就可以了。

比如

net = NET()
net.cuda()
net = nn.DataParallel(net)
net.load_state_dict(torch.load('net.pth')

补充:解决RuntimeError: Error(s) in loading state_dict for XXXX

在运行代码时遇到了这个错误,显示错误对应代码中的state_dict,找到对应的语句

修改前:

net.load_state_dict(torch.load(model_para_path))

修改后:

net.load_state_dict(torch.load(model_para_path),False)

我遇到的问题得到解决。经查阅资料,我理解的原因是state_dict的四个参数之一:_module 可以用来判断模型当前运行环境与之前是否相同,在默认情况下是True(纯属个人理解,勿喷)

补充:使用Pytorch训练模型出现RuntimeError: CUDA out of memory错误解决

训练:

由于GPU显存资源有限,训练输入的batchsize不能过大,过大会导致out of memory错误。

解决方案:

将batchsize减小,甚至是为1

测试时出现此问题解决方案:

在测试代码之前使用 with torch.no_grad():

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决Pytorch 加载训练好的模型 遇到的error问题

    这是一个非常愚蠢的错误 debug的时候要好好看error信息 提醒自己切记好好对待error!切记!切记! -----------------------分割线---------------- pytorch 已经非常友好了 保存模型和加载模型都只需要一条简单的命令 #保存整个网络和参数 torch.save(your_net, 'save_name.pkl') #加载保存的模型 net = torch.load('save_name.pkl') 因为我比较懒我就想直接把整个网络都保存下来,然

  • 解决Pytorch 训练与测试时爆显存(out of memory)的问题

    Pytorch 训练时有时候会因为加载的东西过多而爆显存,有些时候这种情况还可以使用cuda的清理技术进行修整,当然如果模型实在太大,那也没办法. 使用torch.cuda.empty_cache()删除一些不需要的变量代码示例如下: try: output = model(input) except RuntimeError as exception: if "out of memory" in str(exception): print("WARNING: out of

  • linux或windows环境下pytorch的安装与检查验证(解决runtimeerror问题)

    1.pytorch官网下载对应安装文件 https://pytorch.org/ 在getstarted处选择对应版本 方法一:直接使用对应的安装指令进行安装 但是其实这样比较容易断或者出现runtimeout的error.解决办法:使用pip先进行源的查找,在开始下载后停掉,然后找到屏幕上打印出来的链接,手动下载whl 然后手动安装. 方法二:选择相应版本的whl进行离线下载 找到下载链接 进行whl文件的下载然后安装 pytorch从链接安装指定版本 pip3 install whl pip

  • Pytorch测试神经网络时出现 RuntimeError:的解决方案

    Pytorch测试神经网络时出现"RuntimeError: Error(s) in loading state_dict for Net" 解决方法: load_state_dict(torch.load('net.pth') 在前,增加 model = nn.DataParallel(model) 就可以了. 比如 net = NET() net.cuda() net = nn.DataParallel(net) net.load_state_dict(torch.load('ne

  • 解决Numpy与Pytorch彼此转换时的坑

    前言 ​   最近使用 Numpy包与Pytorch写神经网络时,经常需要两者彼此转换,故用此笔记记录码代码时踩(菜)过的坑,网上有人说: Pytorch 又被称为 GPU 版的 Numpy,二者的许多功能都有良好的一一对应. ​但在使用时还是得多多注意,一个不留神就陷入到了 一根烟一杯酒,一个Bug找一宿 的地步. 1.1.numpy --> torch ​   使用 torch.from_numpy() 转换,需要注意,两者共享内存.例子如下: import torch import num

  • pytorch训练神经网络爆内存的解决方案

    训练的时候内存一直在增加,最后内存爆满,被迫中断. 后来换了一个电脑发现还是这样,考虑是代码的问题. 检查才发现我的代码两次存了loss,只有一个地方写的是loss.item().问题就在loss,因为loss是variable类型. 要写成loss_train = loss_train + loss.item(),不能直接写loss_train = loss_train + loss.否则就会发现随着epoch的增加,占的内存也在一点一点增加. 算是一个小坑吧,希望大家还是要仔细. 补充:py

  • Pytorch实现神经网络的分类方式

    本文用于利用Pytorch实现神经网络的分类!!! 1.训练神经网络分类模型 import torch from torch.autograd import Variable import matplotlib.pyplot as plt import torch.nn.functional as F import torch.utils.data as Data torch.manual_seed(1)#设置随机种子,使得每次生成的随机数是确定的 BATCH_SIZE = 5#设置batch

  • Pytorch卷积神经网络迁移学习的目标及好处

    目录 前言 一.经典的卷积神经网络 二.迁移学习的目标 三.好处 四.步骤 五.代码 前言 在深度学习训练的过程中,随着网络层数的提升,我们训练的次数,参数都会提高,训练时间相应就会增加,我们今天来了解迁移学习 一.经典的卷积神经网络 在pytorch官网中,我们可以看到许多经典的卷积神经网络. 附官网链接:https://pytorch.org/ 这里简单介绍一下经典的卷积神经发展历程 1.首先可以说是卷积神经网络的开山之作Alexnet(12年的夺冠之作)这里简单说一下缺点 卷积核大,步长大

  • Pytorch卷积神经网络resent网络实践

    目录 前言 一.技术介绍 二.实现途径 三.总结 前言 上篇文章,讲了经典卷积神经网络-resnet,这篇文章通过resnet网络,做一些具体的事情. 一.技术介绍 总的来说,第一步首先要加载数据集,对数据进行一些处理,第二步,调整学习率一些参数,训练好resnet网络模型,第三步输入图片或者视频通过训练好的模型,得到结果. 二.实现途径 1.加载数据集,对数据进行处理,加载的图片是(N,C,H,W )对图片进行处理成(C,H,W),通过图片名称获取标签,进行分类. train_paper=r'

  • 解决tensorflow测试模型时NotFoundError错误的问题

    错误代码如下: NotFoundError (see above for traceback): Unsuccessful TensorSliceReader constructor: Failed to find any matching files for xxx -- 经查资料分析,错误原因可能出在加载模型时的路径问题.我采用的加载模型方法: with tf.Session() as sess: print("Reading checkpoints...") ckpt = tf.

  • pytorch在fintune时将sequential中的层输出方法,以vgg为例

    有时候我们在fintune时发现pytorch把许多层都集合在一个sequential里,但是我们希望能把中间层的结果引出来做下一步操作,于是我自己琢磨了一个方法,以vgg为例,有点僵硬哈! 首先pytorch自带的vgg16模型的网络结构如下: VGG( (features): Sequential( (0): Conv2d (3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (1): ReLU(inplace) (2): Co

  • 解决python测试opencv时imread导致的错误问题

    如下所示: import cv2 import numpy as np img = cv2.imread("1.jpg")//图片和代码在同个目录,改为相对路径,解决由imread引起的打不开图片或找不到图片的路径问题 cv2.imshow("1",img) cv2.waitKey(10000) D:\>my.py OpenCV Error: Assertion failed (size.width>0 && size.height>

  • Spring关闭Tomcat Servlet容器时内存泄漏问题解决方案

    这篇文章主要介绍了Spring关闭Tomcat Servlet容器时内存泄漏问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 出错信息 22-Sep-2017 06:19:51.064 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [license] appears t

随机推荐