Machine learning 如何从最后一层的输出生成caffe中的预测标签?

Machine learning 如何从最后一层的输出生成caffe中的预测标签?,machine-learning,neural-network,caffe,pycaffe,matcaffe,Machine Learning,Neural Network,Caffe,Pycaffe,Matcaffe,我用LeNet,使用caffe和DIGITS接口,训练了我自己的图像数据集(交通灯图像11x27)。我得到了99%的准确率,当我通过数字给出新图像时,它预测了良好的标签,因此网络似乎运行得很好 然而,我很难通过针对caffe的Python/MatlabAPI预测标签。最后一层输出(ip2)是一个包含2个元素的向量(我有2个类),看起来像[4.8060,-5.2608],例如(第一个分量总是正的,第二个总是负的,绝对值从4到20)。我从Python、Matlab和Digitals的许多测试中了解到

我用LeNet,使用caffe和DIGITS接口,训练了我自己的图像数据集(交通灯图像11x27)。我得到了99%的准确率,当我通过数字给出新图像时,它预测了良好的标签,因此网络似乎运行得很好

然而,我很难通过针对caffe的Python/MatlabAPI预测标签。最后一层输出(ip2)是一个包含2个元素的向量(我有2个类),看起来像[4.8060,-5.2608],例如(第一个分量总是正的,第二个总是负的,绝对值从4到20)。我从Python、Matlab和Digitals的许多测试中了解到这一点

我的问题是:

  • Argmax无法直接在此层上工作(它始终提供0)
  • 如果我使用softmax函数,它总是会给我[1,0](这实际上是python界面中
    net.blobs['prob']
    out['prob']
    的值,无论我的图像的类别如何)
那么,我怎样才能得到好的标签呢


谢谢

看起来你的网给出了一个持续的“0”预测。您的测试集中有多少个“0”示例和多少个“1”示例?你给网络提供的图像与训练图像经过的变换完全相同吗?你会用完全相同的方法减去平均值、裁剪和调整大小吗?我以为平均值会自动被图层“数据”(通过prototxt的transform_参数)减去,但事实上,绝对不是,当我这样做时,它工作得非常完美!非常感谢你!