使用不同数量的类微调CNN

时间:2017-03-26 10:51:28

标签: deep-learning caffe

我试图在我自己的30类数据集上微调PASCAL-VOC训练的更快的RCNN模型。

参考模型:link

当然,当我将cls_score和bbox_pred num_output分别改为30和120而不是21和84时,这些层'重量没有加载,我需要更改图层'名。
我想知道是否有办法保留FC层中为不同数量的类学习的数据。

感谢。

1 个答案:

答案 0 :(得分:0)

根据Berkley repo,这应该很简单。

您需要将图层名称与所需的参考模型图层相匹配。例如,如果您想要参考模型的ip1图层中的权重,那么您的模型应该具有相同的名称:

layer {
  name: "ip1"
  ...

模型中具有不同名称的图层将被随机初始化,或者根据您决定的方案。在训练时,要从theirModel.caffemodel借用权重,您可以按原样启动模型:

caffe train —solver ourSolver.prototxt —weights theirModel.caffemodel

修改

对不起,我想我根本没回答你的问题。如果完全连接的层是100 x 10矩阵,则不能将权重用于100 x 20矩阵。权重在新的上下文中并不意味着什么。最好随机初始化新图层。