code
toroxy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解决pytorch反向传播过程中出现 RuntimeError: Trying to backward through the graph a second time 问题
最近写代码遇到这个问题,先展示下问题,整个问题的代码放在文章最后。比较常见的问题,通常都是第一次迭代没问题,第二次迭代就出现这个错误,以下展示我的部分代码,并且从头到尾分析以下我的解决方案。可以一边看我的代码一边看问题,这里只是示范代码,所以并没有写的很复杂。问题的出现在于我在循环里使用了如下的更新z1的公式,z1是通过 z1 = cal(t0,z0,t1,z1,z2) 得到的,这里z1是已经定义了的变量,但是经过这个公式又把z1更新覆盖了,虽然说这个错误可以在最后loss....原创 2021-11-02 10:08:23 · 25995 阅读 · 10 评论 -
pytorch训练网络时内存不够问题
最近写代码时遇到这个问题,研究了很久,最终还是解决了这个问题,这里放一下解决过程。由于我这里做的工作并不是完全基于神经网络的,只是利用了反向传播,所以我的前向传播并不同于传统的传播方式,即输入经过网络得到输出,我的输出是经过一个更新公式得到的,即经过此更新公式得到的输出就是神经网络的输出,所以问题也就出在这里。每次迭代时,输入经过更新公式前向传播,内存会泄漏一些,我开始并不知道这是什么原因,以为只是计算所产生的内存占用,这里是用pip installmemory_profiler安装的一个监视内存.原创 2021-10-27 11:06:50 · 6067 阅读 · 2 评论 -
关于loss.backward()函数反向传播时叶子节点被释放
之前写代码的时候遇到的一个问题,一直没有解决,后来稀里糊涂的解决了,我也不知道原因,这里贴出来,希望大家遇到这个问题的时候能有些启发,图来自网上搜索,由于问题是很久以前的了,当时没有保存截图,抱歉了。这个问题的出现其实可以将 loss.backward() 写为 loss.backward(retain_graph=True) 来解决的,但是这样会增加内存的消耗,后来我仔细去输出了我的变量类型,确实都是叶子节点,按道理来说是不会被释放的,这里我的loss.backward()也只使用了一次,所以可以原创 2021-09-15 11:22:39 · 1234 阅读 · 1 评论 -
神经网络关于GPU和CPU计算精度的问题
之前遇到了这个问题,这里记录一下,上一篇我提到了计算误差问题,我以为是随机数的问题,确实,随机数也没设置对,所以我对随机数进行了设置,效果是两个计算精度一样了。但是,当我在此基础上使用了某些计算量大的算法时...原创 2021-06-20 12:53:14 · 1924 阅读 · 0 评论 -
基于pytorch的代码在GPU和CPU上训练时,训练输出结果不同问题
最近打算将代码放在GPU上跑,但是每次跑出来的结果都和CPU跑出来的结果不同,代码是完全一样的,为什么会出现这个问题呢?原创 2021-06-06 12:54:06 · 9325 阅读 · 2 评论
分享