Neural network 如何在大网中设置学习率,以便在Caffe中进行微调?

Neural network 如何在大网中设置学习率,以便在Caffe中进行微调?,neural-network,deep-learning,caffe,Neural Network,Deep Learning,Caffe,我有一个多层的大网。我在网络中添加了一个新的全连接层,并希望进行微调。但是,由于网络中有许多层,因此很难在除新层之外的每一层中设置lr\u mult:0。 有没有解决这些问题的好办法 谢谢。与其在新的完全连接层之前为所有层的所有参数设置lr\u mult:0,不如在新层之后停止反向传播 您可以通过设置来完成此操作。 例如: layer { name: "new_layer" type: "InnerProduct" ... inner_product_param { ..

我有一个多层的大网。我在网络中添加了一个新的全连接层,并希望进行微调。但是,由于网络中有许多层,因此很难在除新层之外的每一层中设置
lr\u mult:0

有没有解决这些问题的好办法


谢谢。

与其在新的完全连接层之前为所有层的所有参数设置
lr\u mult:0
,不如在新层之后停止反向传播

您可以通过设置来完成此操作。
例如:

layer {
  name: "new_layer"
  type: "InnerProduct"
  ...
  inner_product_param {
    ...
  }
  propagate_down: false # do not continue backprop after this layer
}

或者,您可以使用命令行实用程序直接更改prototxt文件中的所有条目:

~$ sed -i -E 's/lr_mult *: *[0-9]+/lr_mult: 0/g' train_val.prototxt

这一行将把
train\u val.prototxt
中的所有
lr\u mult
更改为零。您只需为新层手动设置
lr\u mult

如何,在新的完全连接层之前,不要为所有层设置
lr\u mult:0
,只需在新层之后停止反向传播即可

您可以通过设置来完成此操作。
例如:

layer {
  name: "new_layer"
  type: "InnerProduct"
  ...
  inner_product_param {
    ...
  }
  propagate_down: false # do not continue backprop after this layer
}

或者,您可以使用命令行实用程序直接更改prototxt文件中的所有条目:

~$ sed -i -E 's/lr_mult *: *[0-9]+/lr_mult: 0/g' train_val.prototxt

这一行将把
train\u val.prototxt
中的所有
lr\u mult
更改为零。您只需手动设置新层的
lr\u mult

请尝试抱歉,您能给我一些详细信息吗?请尝试抱歉,您能给我一些详细信息吗?谢谢您的回答。我认为
sed
可能更适合我。顺便问一下,我还有一个问题,如果我设计的层有两个底部,我只希望其中一个可以反向传播,我应该如何设计层并设置net.prototxt?谢谢。@nanmath请以新问题的形式发布谢谢您的回答。我认为
sed
可能更适合我。顺便问一下,我还有一个问题,如果我设计的层有两个底部,我只希望其中一个可以反向传播,我应该如何设计层并设置net.prototxt?谢谢。@nanmath请作为新问题发布