gpt4 book ai didi

python - Caffe 网络损失非常低,但测试准确性非常差

转载 作者:行者123 更新时间:2023-11-28 21:51:47 25 4
gpt4 key购买 nike

我对 caffe 有点陌生,而且我遇到了一些奇怪的行为。我正在尝试对 bvlc_reference_caffenet 进行微调以完成 OCR 任务。

我采用了他们的预训练网络,将最后一个 FC 层更改为我拥有的输出类的数量,然后重新训练。经过几千次迭代后,我得到的损失率为 ~.001,网络测试时的准确率超过 90%。也就是说,当我尝试自己在数据上运行我的网络时,我得到了糟糕的结果,不超过 7% 或 8%。

我用来运行网络的代码是:

[imports]

net = caffe.Classifier('bvlc_reference_caffenet/deploy.prototxt', 'bvlc_reference_caffenet/caffenet_train_iter_28000.caffemodel',
image_dims=(227, 227, 1))

input_image = caffe.io.load_image('/Training_Processed/6/0.png')
prediction = net.predict([input_image]) # predict takes any number of images, and formats them for the Caffe net automatically
cls = prediction[0].argmax()

对于为什么这种表现可能如此糟糕有什么想法吗?

谢谢!

PS:一些可能有用也可能没用的附加信息。如下所示进行分类时,分类器似乎确实偏爱某些类别。尽管我有一个 101 类问题,但它似乎最多只能分配 15 个不同的类

PPS:我也很确定我没有过度拟合。我一直在用快照对此进行测试,它们都表现出同样糟糕的结果。

最佳答案

您发布的用于测试模型的代码似乎缺少一些组件:

  1. 您似乎没有减去图像的均值。
  2. 您没有将 channel 从 RGB 切换到 BGR。
  3. 您没有将输入缩放到 [0..255] 范围。

查看 caffe.Classifier 的类似实例,您可能会看到如下内容:

net = caffe.Classifier('bvlc_reference_caffenet/deploy.prototxt',
'bvlc_reference_caffenet/caffenet_train_iter_28000.caffemodel',
mean = NP.load( 'ilsvrc_2012_mean.npy' ),
input_scale=1.0, raw_scale=255,
channel_swap=(2,1,0),
image_dims=(227, 227, 1))

在测试中使用与训练中相同的输入转换至关重要

关于python - Caffe 网络损失非常低,但测试准确性非常差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29434671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com