我使用Caffe GoogleNet模型来训练我自己的数据(10k图像,2个类)。我在400000次迭代时停止了它,准确率约为80%。
如果我运行以下命令:
./build/examples/cpp_classification/classification.bin
models/bvlc_googlenet/deploy.prototxt
models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel
data/ilsvrc12/imagenet_mean.binaryproto
data/ilsvrc12/synset_words.txt
1.png它每次都会给我一个不同的--显然是随机的--结果(即,如果我运行n次,那么我会得到n个不同的结果)。为什么?我的训练失败了吗?它仍然使用参考模型中的旧数据吗?
发布于 2016-07-12 21:01:52
我不认为这是训练的问题。即使训练数据不是,它也应该每次都给出相同的(可能是错误的)输出。如果得到的结果是随机的,则表示权重未正确加载。
当您在.prototxt上加载.caffemodel时,caffe将加载prototxt中名称与caffemodel中的名称匹配的所有层的权重。对于其他层,它将执行随机初始化(根据prototxt中的规范,高斯xavier等)。
因此,您现在最好做的事情是检查模型是否使用您现在使用的相同的协议进行训练。
我看到您正在使用GoogleNet prototxt和reference_caffenet caffemodel。这是故意的吗?
发布于 2016-07-17 22:09:14
https://stackoverflow.com/questions/38312250
复制相似问题