【问题标题】:Is Caffe Net Surgery requires fine tuning?Caffe Net Surgery 需要微调吗?
【发布时间】:2018-12-30 01:56:35
【问题描述】:

我是 Caffe 的新手,我想将已经训练好的 caffeNet 模型与 ImageNet 一起使用。我通过删除卷积中间 conv4 层来应用网络手术。

'layer {
     name: "relu3"
     type: "ReLU"
     bottom: "conv3"
     top: "conv3"
 }

 layer {
     name: "relu5-new"
     type: "ReLU"
     bottom: "conv5-new"
     top: "conv5-new"
 }

 layer {
     name: "pool5-new"
     type: "Pooling"
     bottom: "conv5-new"
     top: "pool5-new"
     pooling_param {
         pool: MAX
         kernel_size: 3
         stride: 2
      }
 }

 layer {
     name: "fc6"
     type: "InnerProduct"
     bottom: "pool5-new"
     top: "fc6"
     inner_product_param {
     num_output: 4096
     }
 }'

Full of prototxt file can be found here

保存这个新网络后,准确率变为 0。我应该对 ImageNet 验证集进行微调,还是我的新 prototxt 文件有问题?

任何帮助将不胜感激!

【问题讨论】:

    标签: image-processing machine-learning neural-network deep-learning caffe


    【解决方案1】:

    您开始使用的原始网络在conv3conv5 之间有conv4:这意味着conv5 的过滤器(权重)期望一定数量的输入和一定的输入“顺序”或“含义” .删除 conv4 后,您必须更改 conv5 以接受不同数量的输入。因此,新的conv5必须经过训练以适应它接收到的新输入。
    在这种情况下,当你引入一个新的conv5 层时,你应该在你的 prototxt 中定义weight_filler 来指导 caffe 如何初始化新的权重。否则 caffe 会将权重设置为零,在这种情况下几乎不可能进行微调。

    【讨论】:

    • 首先感谢您的回复。我尝试使用xaviergaussian 初始化新的卷积层权重。并且准确度没有增加。我不确定要进行微调,因为我正在处理 imagenet 验证集。你知道有没有像这种网络手术这样的例子的公共回购?
    • @seaSky 您的准确性为零,因为您在中间切断了网。您必须对其进行微调才能正常工作
    猜你喜欢
    • 2017-11-30
    • 2023-03-11
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2013-12-15
    • 2015-12-19
    • 2017-05-08
    • 1970-01-01
    相关资源
    最近更新 更多