返回信息流我设计的一个神经网络,希望输出值是3个[0,1]区间的数,因此尝试过在最后一层卷积或者全链接层后加一个sigmoid或者tanh激活函数,但是由于网络可能原本输出值很大,导致激活函数输出值为1,此时的梯度还为0,就导致回传整个梯度都是0,有没有什么可以限制输出的方法,谢谢。
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #37109同步于 2020/9/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
深度学习如何限制网络输出值的范围?
lht1996
2020/9/26镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
我用的就是VGG那种结构,只是改变了最后的输出向量的个数,权重用的kaiming初始化,偏置设为0
【 在 jiaoao 的大作中提到: 】
: 初始化不对吧,你的期望输出是0-1,一开始应该不会学到很大数值才对
: --
: ............
有的时候不是上来就崩,而是训了一段时间崩了
【 在 jiaoao 的大作中提到: 】
: 初始化不对吧,你的期望输出是0-1,一开始应该不会学到很大数值才对
: --
: ............
Loss决定你回传的gradient。怎么感觉你这个只有正样本没有负样本呢,网络认为应该闭眼输出1.。。。。。。。。。。。。
【 在 lht1996 的大作中提到: 】
: 我设计的一个神经网络,希望输出值是3个[0,1]区间的数,因此尝试过在最后一层卷积或者全链接层后加一个sigmoid或者tanh激活函数,但是由于网络可能原本输出值很大,导致激活函数输出值为1,此时的梯度还为0,就导致回传整个梯度都是0,有没有什么可以限制输出的方法,谢谢。
【 在 lht1996 的大作中提到: 】
: 有的时候不是上来就崩,而是训了一段时间崩了
这个可能是需要限制梯度,gradient clipping。限制输出可以直接x.clamp(0, 1)这样。