deep-learning - caffe中如何实现固定参数?

标签 deep-learning caffe pycaffe

假设网络中有一些参数我想在 pycaffe 中手动更改,而不是由求解器自动更新。例如,假设我们想要惩罚密集激活,这可以作为额外的损失层来实现。在整个训练过程中,我们希望通过将损失乘以以预先指定的方式演变的系数来改变这种惩罚的强度。在咖啡中做到这一点的好方法是什么?是否可以在 prototxt 定义中指定这一点?在pycaffe界面中?

更新:我认为将 lr_multdecay_mult 设置为 0 可能是一种解决方案,但看起来很笨拙。也许以 blob 形式提供参数的 DummyDataLayer 会是更好的选择。但是文档太少了,对于刚接触 caffe 的人来说写起来相当困难

最佳答案

也许这是一个微不足道的问题,但以防万一其他人可能感兴趣,这是我最终使用的成功实现

在层proto def中,将lr_multdecay_mult设置为0,这意味着我们既不想学习也不想衰减参数。使用filler设置初始值。要在网络训练期间更改 python 中的参数,请使用如下语句 net.param['name'][index].data[...] = 某事

关于deep-learning - caffe中如何实现固定参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37537547/

相关文章:

python - 将预训练的咖啡模型加载到烤宽面条中?

c++ - 如何通过LeNet使用opencv_dnn模块进行数字分类?

python - 像在 caffe 中一样在 keras 中切片/拆分一层

machine-learning - 如何绘制日志文件?

python - 使用 TensorFlow 模型时图像分类的准确性没有提高

python - 如何将 fit_generator 与分成批处理的顺序数据一起使用?

machine-learning - Caffe,在层中设置自定义权重

python - 使用预训练 VGG-16 模型的 Caffe 形状不匹配错误

machine-learning - 如何确定 caffe blob 的输入尺寸

tensorflow - Layer.add_loss() 的目的和直觉是什么?它是如何工作的?它是否只计算当前层的损失?