我使用Caffe(http://caffe.berkeleyvision.org/)进行图像分类。我在Windows上使用它,一切似乎都编译得很好。Caffe - MNSIT - 如何在单个图像上使用网络?
要开始学习,我按照MNIST教程(http://caffe.berkeleyvision.org/gathered/examples/mnist.html)。我下载了数据并运行.. \ caffe.exe train --solver = ... examples \ mnist \ lenet_solver.prototxt。它运行10.000次迭代,打印精度为98.5,并生成两个文件:lenet_iter_10000.solverstate和lenet_iter_10000.caffemodel。
因此,尽管尝试对自己的图像进行分类会很有趣,但应该很简单吧?
我可以找到如下资源:https://software.intel.com/en-us/articles/training-and-deploying-deep-learning-networks-with-caffe-optimized-for-intel-architecture#Examples告诉我如何准备,培训和计算我的模型。但是,每当一篇教程/文章实际上将一个实例放入CNN中,他们就会跳到下一个点并告诉下载一些新模型。一些资源告诉使用classifier.bin/.exe,但是这个文件需要一个imagenet_mean.binaryproto或类似的mnist。我不知道在哪里可以找到或生成这个文件。
简而言之:当我使用Caffe训练CNN时,如何输入单个图像并使用我已有的文件获取输出?
更新:基于帮助,我得到了网络来识别图像,但即使网络的准确性为99.0%,识别也是不正确的。我用下面的Python代码recognice图像:如果我正确格式的图像为MNIST例如
NET_FILE = 'deploy.prototxt'
MODEL_FILE = 'lenet_iter_10000.caffemodel'
net = caffe.Net(NET_FILE, MODEL_FILE, caffe.TEST)
im = Image.open("img4.jpg")
in_ = np.array(im, dtype=np.float32)
net.blobs['data'].data[...] = in_
out = net.forward() # Run the network for the given input image
print out;
我不知道。该图像是一个28x28灰度图像与基本4.我必须做更多的图像转换?
网络(部署)看起来像这样(开始和结束):
input: "data"
input_shape {
dim: 1 # batchsize
dim: 1 # number of colour channels - rgb
dim: 28 # width
dim: 28 # height
}
....
layer {
name: "loss"
type: "Softmax"
bottom: "ip2"
top: "loss"
}
谢谢。我有python启用,它似乎工作。我会明天测试你的方法:) – MortenGR
查看更新,你有任何想法,为什么它不工作? – MortenGR