0 m0_46429066

尚未进行身份认证

暂无相关简介

等级
TA的排名 41w+

使用register_hook()函数导致显存溢出的问题

hook()函数的作用很强大,pytorch中通常会自动舍弃图计算的中间结果,所以想要获取网络中间层的输出结果或者某些变量的梯度,就可以使用Hook函数来实现,hook函数包括tensor的hook和nn.Module的hook,用法相似。hook函数主要有x.register_hook(hook), layer.register_forward_hook()和layer.register_backward_hook(),x是模型的参数,第一个主要用于获得x的梯度信息,后面两个主要用于模型前向和后向运行中获

2020-05-24 12:19:33

输出,loss出现-inf 或者nan

原因有很多种,比如输入数据不对,或者模型有问题;一般考虑梯度爆炸或者Loss爆炸,可以用debug模式检查问题的原因,观察什么时候出现的问题;我产生的原因是在训练模型时,使用了model.eval(),将其改为model.train()后解决。...

2020-05-01 18:03:11

RuntimeError: module must have its parameters and buffers on device cuda:0 (device_ids[0]) but found

问题:RuntimeError: module must have its parameters and buffers on device cuda:0 (device_ids[0]) but found one of them on device: cuda:1原因:对模型使用的是一机多卡模式,model = torch.nn.DataParallel(model),对其设置和后续处理可参照...

2020-04-20 22:02:34

a leaf Variable that requires grad has been used in an in-place operation

在pytorch的计算图中,需要梯度的变量在前向计算时,不能使用+=或者-=等操作,必须类似x=x+1等操作。

2020-03-31 14:38:57

分类任务对数据集shuffle的重要性

在每个迭代之前分别使用两种方式对数据集进行处理,使用shuffle对数据集进行打乱重排序对数据集使用sampler采样,分成训练集和验证集实验验证使用shffle验证集精度和训练集精度差不多,而使用sampler采样验证集精度比训练集精度低7个点,明显出现了过拟合,所以对数据集使用shffle非常重要。...

2020-03-26 10:50:25

Pytorch之scatter(),gather()函数

scatter函数:scatter_(dim, index, src) → TensorParameters:dim (int) – the axis along which to index index (LongTensor) – theindices of elements to scatter, can be either empty or the same sizeof sr...

2020-03-21 18:24:10

PIL库和OpenCV中的LUT函数在cuda上快速实现

PIL库和OpenCV中的各种函数都使用了并行架构实现了多线程处理,处理速度都很快,但是有时候想要在GPU上实现差不多的函数功能,比如LUT查表函数,它能够快速的将一个数组映射到另一个数组,要想在GPU上实现这样的功能,就需要解决处理速度的问题,利用for循环肯定不行,一张图片(128*128)就有一万多像素点,一张图片循环下来,就需要十几秒,非常不切实际;经过查阅资料,利用Pytorch中对T...

2020-03-20 13:50:42

IndexError: too many indices for tensor of dimension 1

我是在Pytorch中使用tensor索引时出现的问题,索引的使用可以见博文https://blog.csdn.net/xpy870663266/article/details/101597144但是我使用了一个图像数据tensor作为索引值,一个一维tensor作为被索引表,tensor索引值必须是long,bite或者bool类型,我在过程中将三维图像转为了uint8类型,就出现了上述...

2020-03-20 13:35:50

Function MulBackward0 returned an invalid gradienttorch.FloatTensor but got torch.cuda.FloatTensor

关键原因在于在forward过程中,使用的某些变量是torch.Tensor,没有放到cuda上面,使用torchsnooper检查每一个变量的类型,统一格式后就可以解决掉问题。Some variables initialized in forward were not put deployed on cuda.详见:https://discuss.pytorch.org/t/runtimee...

2020-03-05 21:07:41

RuntimeError:Function MulBackward0 returned an invalid gradient at index 0

问题:RuntimeError:Function MulBackward0 returned an invalid gradient at index 0 - expected type torch.FloatTensorbut got torch.cuda.FloatTensor解决方法:关键是数据处理过程中格式发生了变化,而且找到开始变化的地方很麻烦,如果用print去看,很费时间,所以借用...

2020-03-05 18:15:30

TypeError: build_optimizer() missing 1 required positional argument: 'params'

named_parameters()迭代打印参数的名字和参数。检查参数是否已经初始化。可查看链接内容named_parameters()介绍

2020-02-28 17:00:15

TypeError: Caught TypeError in DataLoader worker process 0. TypeError:'tuple' object is not callable

TypeError:Caught TypeError in DataLoader worker process 0. [2/1865]Original Traceback (most recent...

2020-02-28 13:37:38
勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。