我试图在我自己的30类数据集上微调PASCAL-VOC训练的更快的RCNN模型。
参考模型:link
当然,当我将cls_score和bbox_pred num_output分别改为30和120而不是21和84时,这些层'重量没有加载,我需要更改图层'名。
我想知道是否有办法保留FC层中为不同数量的类学习的数据。
感谢。
答案 0 :(得分:0)
根据Berkley repo,这应该很简单。
您需要将图层名称与所需的参考模型图层相匹配。例如,如果您想要参考模型的ip1
图层中的权重,那么您的模型应该具有相同的名称:
layer {
name: "ip1"
...
模型中具有不同名称的图层将被随机初始化,或者根据您决定的方案。在训练时,要从theirModel.caffemodel
借用权重,您可以按原样启动模型:
caffe train —solver ourSolver.prototxt —weights theirModel.caffemodel
修改强>
对不起,我想我根本没回答你的问题。如果完全连接的层是100 x 10矩阵,则不能将权重用于100 x 20矩阵。权重在新的上下文中并不意味着什么。最好随机初始化新图层。