求pytorch大神解答,问题出在哪里 44回复/ 1453133 浏览

全部回帖

收起
引用 @zxlllccc 发表的:
只看此人
opt_D.step()放倒数第二行
opt_D.step()放倒数第二行

谢谢大佬,可以了,想问问原因是什么,求教

谢谢大佬,可以了,想问问原因是什么,求教

亮了(0)
回复
查看评论(2)
引用 @lose_dark 发表的:
只看此人

你这个是gan吗

你这个是gan吗

是的

是的

亮了(1)
回复
引用 @何时身高190 发表的:
只看此人

谢谢大佬,可以了,想问问原因是什么,求教

谢谢大佬,可以了,想问问原因是什么,求教

因为算G的loss的计算图是包含D的,但是你在G的backward之前更新了D的值,这时候再去计算就不是和forward时候对应的梯度了

因为算G的loss的计算图是包含D的,但是你在G的backward之前更新了D的值,这时候再去计算就不是和forward时候对应的梯度了

亮了(21)
回复
查看评论(2)
引用 @zxlllccc 发表的:
只看此人

因为算G的loss的计算图是包含D的,但是你在G的backward之前更新了D的值,这时候再去计算就不是和forward时候对应的梯度了

因为算G的loss的计算图是包含D的,但是你在G的backward之前更新了D的值,这时候再去计算就不是和forward时候对应的梯度了

真的豁然开朗,明白了,太感谢大佬了

真的豁然开朗,明白了,太感谢大佬了

亮了(1)
回复
楼主你这是什么字体呀
楼主你这是什么字体呀
亮了(1)
回复
查看评论(1)
引用 @Man_UnDead 发表的:
只看此人
楼主你这是什么字体呀
楼主你这是什么字体呀

jetbrain mono

jetbrain mono

亮了(0)
回复
引用 @hupu历史理智第一人 发表的:
只看此人
在虎扑你甚至可以学会一门语言
在虎扑你甚至可以学会一门语言

是框架

是框架

亮了(3)
回复
引用 @何时身高190 发表的:
只看此人

求助大神了

求助大神了

老哥这是毕设吗

老哥这是毕设吗

亮了(0)
回复
查看评论(1)

我上次出现这个是版本问题

我上次出现这个是版本问题

亮了(0)
回复
查看评论(1)
引用 @拳头公司 发表的:
只看此人

我上次出现这个是版本问题

我上次出现这个是版本问题

老哥,哪个版本没有这个问题

老哥,哪个版本没有这个问题

亮了(0)
回复
查看评论(1)
引用 @都他么是人才 发表的:
只看此人

老哥这是毕设吗

老哥这是毕设吗

不是,我方向的东西,在学习这个

不是,我方向的东西,在学习这个

亮了(0)
回复
引用 @hupu历史理智第一人 发表的:
只看此人
在虎扑你甚至可以学会一门语言
在虎扑你甚至可以学会一门语言

奔涌吧,后浪🐶

奔涌吧,后浪🐶

亮了(0)
回复
引用 @何时身高190 发表的:
只看此人

老哥,哪个版本没有这个问题

老哥,哪个版本没有这个问题

我记得1.5有,后来我换1.3就好了

我记得1.5有,后来我换1.3就好了

亮了(0)
回复
查看评论(1)
引用 @拳头公司 发表的:
只看此人

我记得1.5有,后来我换1.3就好了

我记得1.5有,后来我换1.3就好了

好嘞,感谢老哥

好嘞,感谢老哥

亮了(0)
回复
引用 @zxlllccc 发表的:
只看此人

因为算G的loss的计算图是包含D的,但是你在G的backward之前更新了D的值,这时候再去计算就不是和forward时候对应的梯度了

因为算G的loss的计算图是包含D的,但是你在G的backward之前更新了D的值,这时候再去计算就不是和forward时候对应的梯度了

并不是,第一个鉴别器的loss反向传播的时候设置了retained_graph=True了,保留梯度图了,并不会影响生成器loss里的反向传播,他这个就是pytorch版本不对,我用他一模一样的代码在我地方就能跑
并不是,第一个鉴别器的loss反向传播的时候设置了retained_graph=True了,保留梯度图了,并不会影响生成器loss里的反向传播,他这个就是pytorch版本不对,我用他一模一样的代码在我地方就能跑
亮了(1)
回复
查看评论(4)
引用 @酱豆要变强 发表的:
只看此人
并不是,第一个鉴别器的loss反向传播的时候设置了retained_graph=True了,保留梯度图了,并不会影响生成器loss里的反向传播,他这个就是pytorch版本不对,我用他一模一样的代码在我地方就能跑
并不是,第一个鉴别器的loss反向传播的时候设置了retained_graph=True了,保留梯度图了,并不会影响生成器loss里的反向传播,他这个就是pytorch版本不对,我用他一模一样的代码在我地方就能跑

我想是因为在旧版本中 forward 的时候 context 存了需要的用来在backward时候计算梯度的值引用,而optimizer 更新 D 的时候是一个 in-place操作,改变了这个引用的值,所以会报错。而后面的版本中,也许 context 里存的不是引用,而是一个 clone 的新的值,所以就不会报这个错误了。

我想是因为在旧版本中 forward 的时候 context 存了需要的用来在backward时候计算梯度的值引用,而optimizer 更新 D 的时候是一个 in-place操作,改变了这个引用的值,所以会报错。而后面的版本中,也许 context 里存的不是引用,而是一个 clone 的新的值,所以就不会报这个错误了。

亮了(0)
回复
查看评论(1)

另外,楼主你的原代码应该是对的。我之前那样修改对于 GAN 来说是错误的,会使得 generator 的 loss 回传时会累加到 discriminator 上。而且我看到官方 tutorial 也是你原来的写法,所以更新版本可能是一个更好的选择,抱歉。

另外,楼主你的原代码应该是对的。我之前那样修改对于 GAN 来说是错误的,会使得 generator 的 loss 回传时会累加到 discriminator 上。而且我看到官方 tutorial 也是你原来的写法,所以更新版本可能是一个更好的选择,抱歉。

亮了(0)
回复
引用 @zxlllccc 发表的:
只看此人

我想是因为在旧版本中 forward 的时候 context 存了需要的用来在backward时候计算梯度的值引用,而optimizer 更新 D 的时候是一个 in-place操作,改变了这个引用的值,所以会报错。而后面的版本中,也许 context 里存的不是引用,而是一个 clone 的新的值,所以就不会报这个错误了。

我想是因为在旧版本中 forward 的时候 context 存了需要的用来在backward时候计算梯度的值引用,而optimizer 更新 D 的时候是一个 in-place操作,改变了这个引用的值,所以会报错。而后面的版本中,也许 context 里存的不是引用,而是一个 clone 的新的值,所以就不会报这个错误了。

不对,应该是更新之后的 optimizer.step() 不再是 in-place 操作,这样就会分配一块新的内存,而原来的内存仍然保留着。

不对,应该是更新之后的 optimizer.step() 不再是 in-place 操作,这样就会分配一块新的内存,而原来的内存仍然保留着。

亮了(0)
回复
引用 @何时身高190 发表的:
只看此人

我看了下程序一样,难道因为我是1.5版本的😓

我看了下程序一样,难道因为我是1.5版本的😓

1.4到1.5确实不太一样。一样的代码结果完全不一样

1.4到1.5确实不太一样。一样的代码结果完全不一样

亮了(0)
回复
查看评论(1)
引用 @瓦尔德 发表的:
只看此人

1.4到1.5确实不太一样。一样的代码结果完全不一样

1.4到1.5确实不太一样。一样的代码结果完全不一样

好的,感谢老哥提醒

好的,感谢老哥提醒

亮了(0)
回复
Re:求pytorch大神解答,问题出在哪里
步行街主干道最热帖
以前看的稀里糊涂,现在亮血条总算看明白了。
男生身高178相当于女生多高?
于适和杨洋谁帅
我要怎么证明我确实有这么多钱
老鹰这个爪子吓人 一抓一个不吱声
一根灯珠300,这下一套房没了吧?
为什么吹牛老爹敢真的杀2pac,但是不敢动阿姆和侃爷?
一个人越缺什么就越喜欢展示什么
奇葩地图引发全球网友广泛热议,传播者称此地图拍摄于美国某所小学
失败后 我主动让她拉黑删除了我
步行街主干道最新帖
我感觉图里有人在看我呢……
怎么委婉的告诉老爸
为什么还没有人人肉我,我想进入蹲,人间太无聊
没人愿意当发帖员,我一定是惦记上了你口袋里的三瓜两枣
关于杨鸣是否种族歧视
农行的六星贵宾是种怎样的人生体验,行长叫我开通私人银行是什么套路吗
兄弟们讲讲自己的恋爱史吧
凭什么我辛辛苦苦创业才赚到这点钱,而我老爸一年躺着可以拿100万租金,20万发电费
假如给你300万,你要去做什么
这个点还有人吗,吓死了
热门游戏-即点即玩
无需下载,足球经理模式一键即玩
《NBA英雄》教练系统上线啦!我选好了,看看你的