代码之家  ›  专栏  ›  技术社区  ›  Ashutosh Singla

修改部署。GoogLeNet中的prototxt

  •  2
  • Ashutosh Singla  · 技术社区  · 9 年前

    我使用了经过预先培训的GoogLeNet,然后在我的数据集上对其进行了微调,以解决二进制分类问题。验证数据集似乎提供了 "loss3/top1" 98.5%. 但当我在评估数据集上评估绩效时,它给了我50%的准确率。无论我做了什么改变,train_val。prototxt,我在部署中做了相同的更改。prototxt和我不确定我应该在这些行中做什么更改。

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

    有什么建议吗???

    1 回复  |  直到 9 年前
        1
  •  4
  •   Shai    9 年前

    您无需进一步更改 deploy.prototxt *,但在将数据传输到网络的方式上。你 必须 转换评估图像的方式与转换培训/验证图像的方式相同。
    例如,查看如何 classifier.py 通过正确初始化的 caffe.io.Transformer

    这个 "Input" prototxt中的层仅仅是caffe根据10-x3-x224-by-224形状的输入blob分配内存的声明。


    *当然,您必须验证 train_val.prototxt 部署.prototxt 确切地 相同(除了输入层和损耗层):包括确保层 姓名 与caffe使用层名称将“caffemodel”文件中的权重分配给它加载的实际参数相同。名称不匹配将导致caffe对某些层使用随机权重。