在GoogLeNet中修改Deploy.prototxt

时间:2016-05-06 10:40:57

标签: machine-learning deep-learning caffe conv-neural-network pycaffe

我使用预先训练过的GoogLeNet,然后在我的数据集上对二进制分类问题进行了微调。验证数据集似乎给出"loss3/top1" 98.5%。但是,当我评估我的评估数据集的性能时,它给我50%的准确性。无论我对train_val.prototxt进行了哪些更改,我都在deploy.prototxt中进行了相同的更改,我不确定在这些行中我应该做哪些更改。

name: "GoogleNet"
layer {
  name: "data"
  type: "input"
  top: "data"
  input_param { shape: { dim:10 dim:3 dim:224 dim:224 } }
}

任何建议???

1 个答案:

答案 0 :(得分:2)

您无需在deploy.prototxt *中进一步更改任何内容,而是将数据提供给网络。您必须转换您的评估图片的方式与转换培训/验证图片的方式相同 例如,请参阅classifier.py如何通过正确初始化的caffe.io.Transformer类放置输入图像。

原型文本中的"Input"层只是caffe根据形状输入blob分配内存的声明10×3×224×224。

*当然,您必须验证train_val.prototxtdeploy.prototxt 完全是否相同(除了输入图层和丢失图层):这包括确保图层名称是相同的,因为caffe使用图层名称来分配来自&caffmodel'的权重。归档到它加载的实际参数。不匹配的名称将导致caffe对某些图层使用随机权重。