[深度学习] inplace operation 的错误 -> 训练模型方向导致
admin
2024-05-22 06:05:16

项目场景:

在深度学习的时候,项目需要用到拮抗网络的知识, 就按照文字上的要求进行建模,结果发生了Inplace operation
研究了半天也不知道Inplace 到底在哪里, 后来终于发现了原因,所以赶紧记下来。

Created with Raphaël 2.3.0oencoderclassifierw

问题描述

训练的时候, 我们需要先训练特征提取,再训练分类器,但是由于项目用到了GAN,也就是advesarial learning, 即加入“噪音”之后,需要再次训练encoder 让他可以在Domain变化的情况下分不清图片来自于哪个domain以实现Domain invariance。

所以我们一开始的想法就是先去训练classifier 等他训练好了,冻住它的所有参数,再去训练encoder ,结果就发生了inplace operation的报错,


原因分析:

后来发现这其实是反向传播的问题:
如果先训练B 再训练A 的话, 就会发生Inplace operation 的错误,因为先训练B,反向传播进行计算,他会计算这一条链直到一开始o的梯度,并且进行保存。之后A 进行反向传播的时候那肯定会更新梯度,但是一更新,由于pythone 用的是Inplace operartion 那B的参数也会受到影响。 即使冻住了B 也没有用。冻住只是不再计算,但是这个问题是之前存储需要输出的值变化了, 所以就会报错,

但是如果先A 再B , 就没有问题,因为A 先反向传播参数进行计算更新,B再计算,就直接用这些再计算A 时,已经存好的值,这样B的更新也不会影响到A 的参数变化


解决方案:

先train A 再 train B,

相关内容

热门资讯

山水皆有情!丽江两山一江的千年... 去过丽江、走过虎跳峡的人,大概率都听过哈巴雪山和金沙江的传说。很多人站在峡谷之下,望着奔腾不息的金沙...
活力中国调研行丨“殷”你而来 ... 9月12日,游客在殷墟博物馆“甲骨文展厅”内参观。位于河南省安阳市的殷墟博物馆新馆是首个全景式展现商...
浦江之夜赴美好相逢,第37届上... 9月12日晚,黄浦江畔灯火璀璨,第37届上海旅游节大巡游在外滩中山东一路上演。不少观众早早便来到外滩...
美丽中国丨秋韵紫鹊界 梯田入画... 这是9月11日拍摄的紫鹊界梯田(无人机照片)。 金秋九月,湖南省娄底市新化县紫鹊界梯田稻谷渐次成熟。...
中国之巅奏响《共同的节日》,千... 千吨阻尼器,“迎世赛、游上海旅游节”。9月13日,由上海市文化和旅游局指导推出上海旅游·会客│巅峰之...