首页 炼丹房 帖子详情
模型权值很小可以用 bn 解决么?
收藏
快速回复
炼丹房 问答新手上路 3092 42
模型权值很小可以用 bn 解决么?
收藏
快速回复
炼丹房 问答新手上路 3092 42

做模型时发现有一层模型的权值很小,1e-5 左右,几乎更新不了梯度。这种情况可以用 bn 强行拉回权值分布么?

0
收藏
回复
全部评论(42)
时间顺序
AIStudio810258
#2 回复于2020-08

我尝试使用 in 层,似乎没什么效果

0
回复
Mr.郑先生_
#3 回复于2020-08

这个很玄学的,试试才知道

0
回复
thinc
#4 回复于2020-08

in一般是bs=1时用的

0
回复
AIStudio810258
#5 回复于2020-08
thinc #4
in一般是bs=1时用的

恩,是bs=1的cyclegan

0
回复
AIStudio810258
#6 回复于2020-08

后来发现是 SpectralNorm 导致的

0
回复
AIStudio810258
#7 回复于2020-08

其实是我用错了,不是网络权值小,是特征图的值小

0
回复
AIStudio810258
#8 回复于2020-08

这样最后导致判别器的输出无法更新生成器

0
回复
AIStudio810258
#9 回复于2020-08

SpectralNorm 的作用只是稳定模型训练,应该对最后结果没什么影响吧

0
回复
AIStudio810258
#10 回复于2020-08

不行判别器就直接 bn 了,只要生成器用 adailn 就好了

0
回复
thinc
#11 回复于2020-08

虽然听不太懂,但好像很厉害的样子

0
回复
AIStudio810258
#12 回复于2020-08
thinc #11
虽然听不太懂,但好像很厉害的样子[图片]

后来我试验了,用了bn层,卷积核的权值放大了

0
回复
AIStudio810258
#13 回复于2020-08

但用在cyclegan的判别器里效果并不好

0
回复
AIStudio810258
#14 回复于2020-08

spectral normalization 没有放大权值但确实稳定了模型的训练

0
回复
AIStudio810258
#15 回复于2020-08

开始我用 spectral normalization 还用错了,给特征图用上了

0
回复
AIStudio810258
#16 回复于2020-08

应该给卷积核用

0
回复
AIStudio810258
#17 回复于2020-08

就像Paddle 的 BatchNorm batch_norm 一样

0
回复
AIStudio810258
#18 回复于2020-08

不能在 forward 里直接 batch_norm() 特征图,得 batch_norm 卷积核

0
回复
AIStudio810258
#19 回复于2020-08

这个是在论文复现的 issue 里了解到的细节

0
回复
AIStudio810258
#20 回复于2020-08

在原版的cyclegan 里用bn效果还不错,在 ugatit 魔改的 cyclegan 里还是得用论文里的普归一化

0
回复
thinc
#21 回复于2020-08
后来我试验了,用了bn层,卷积核的权值放大了

bn最后有两个参数控制放缩和平移的

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户