假设网络中有参数我想在pycaffe中手动更改,而不是由解算器自动更新。例如,假设我们想惩罚密集激活,这可以作为额外的损失层来实现。在整个训练过程中,我们希望通过将损失乘以以预先指定的方式演变的系数来改变此惩罚的强度。在caffe中这样做的好方法是什么?是否可以在原型文本定义中指定它?在pycaffe界面?
更新:我认为将lr_mult
和decay_mult
设置为0可能是一个解决方案,但看起来很笨拙。也许将DummyDataLayer
作为blob提供参数将是更好的选择。但是文档很少,为新来的人写作是非常困难的
答案 0 :(得分:2)
也许这是一个微不足道的问题,但万一其他人可能会感兴趣,这是一个成功的实施我最终使用
在图层proto def中,将lr_mult
和decay_mult
设置为0,这意味着我们既不想学习也不想衰减参数。使用filler
设置初始值。要在训练网络期间更改python中的参数,请使用类似的语句
net.param['name'][index].data[...] = something