【发布时间】:2016-06-20 07:35:10
【问题描述】:
有什么方法可以轻松使用 Caffe 快照来预测新图像?
“轻松”是指:
- 请勿手动将
train.prototxt更改为deploy.prototxt并谨慎考虑。 - 不将文件转换为 LMDB(或其他类似格式),只使用简单的图像文件(没有任何文件名列表或其他内容)
- 仅使用 python 代码(不使用 CLI)
我已经根据 Caffe MNIST 示例训练了一个二元分类网络。我将 MNIST 更改为用于对 2 个类别进行分类,它的训练效果非常好。但是现在我已经完成了网络的训练并生成了快照(包含'snapshot.caffemodel'和'solver.caffemodel'),我被困在如何使用这个快照来预测一个图像而没有所有的麻烦......
我当前的代码是(如果我能像这样简单地进行预测,我真的更喜欢):
#I'M NOT SURE IF I SHOULD USE 'caffe.Net(...)' OR 'caffe.Classifier(...)'
net = caffe.Classifier('Data/train.prototxt',
'Data/Snapshot_iter_1000.caffemodel',
mean=convertBinaryProtoToNPY('Data/mean_image.binaryproto'),
image_dims=(100, 100),
raw_scale=255)
score = net.predict([caffe.io.load_image('/Data/Images/1.jpg')])
print score
我收到了这个错误:
File "C:\Anaconda2\lib\site-packages\caffe\classifier.py", line 29, in __init__ in_ = self.inputs[0]
IndexError: list index out of range
搜索后我发现我不应该使用“train.prototxt”,而是使用名为“deploy.prototxt”的东西。
当前 Caffe 处理事情的方式有时似乎过于复杂,尤其是对于诸如使用快照预测图像之类的琐碎任务... 也许我做事的方式不对……
【问题讨论】:
标签: python neural-network deep-learning caffe conv-neural-network