我使用预先训练过的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 } }
}
任何建议???
答案 0 :(得分:2)
您无需在deploy.prototxt
*中进一步更改任何内容,而是将数据提供给网络。您必须转换您的评估图片的方式与转换培训/验证图片的方式相同
例如,请参阅classifier.py
如何通过正确初始化的caffe.io.Transformer
类放置输入图像。
原型文本中的"Input"
层只是caffe根据形状输入blob分配内存的声明10×3×224×224。
*当然,您必须验证train_val.prototxt
和deploy.prototxt
完全是否相同(除了输入图层和丢失图层):这包括确保图层名称是相同的,因为caffe使用图层名称来分配来自&caffmodel'的权重。归档到它加载的实际参数。不匹配的名称将导致caffe对某些图层使用随机权重。