[深度学习] 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月9日,受降雨天气影响,位于晋陕峡谷的黄河壶口瀑布水量大增,主副瀑布连成一片,形成壮美瀑布群景...
“请3休13”点燃中秋国庆国内... 财联社9月10日讯(记者 胡皓琼)中秋前一日火车票开售,中秋国庆国内游预订提速。财联社记者从OTA平...
微言|游客暴增却带不来利润?“... 中秋、国庆假期将至,很多地方将迎来旅游旺季。然而,一些地方旅游人次创新高,民宿经营者却普遍反映利润摊...