pyCaffe没有给出与命令行界面

时间:2016-01-26 19:21:27

标签: caffe pycaffe

我正在尝试使用python脚本使用预先训练的网络提取特征值。这是我的剧本:

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import caffe

caffe.set_device(0)
caffe.set_mode_gpu()
net=caffe.Net('blobs-Test-Eval.prototxt', 'best_snapshot_iter_4553.caffemodel', caffe.TEST)
im=np.array(Image.open('Test/D_4051.png'))
im_input = im[np.newaxis, np.newaxis, :, :]
net.blobs['data'].reshape(*im_input.shape)
net.blobs['data'].data[...]=im_input
out=net.forward()
print out['fc8']

现在图像D_4051应该返回介于0.002 - 0.006之间的分数,但是python脚本会从我的测试集返回[[2.99469399]]的任何图像。很明显,我的代码没有按照我的意愿去做,但是从我发现的文档和示例中,我不确定是什么问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

使用python界面时,必须注意测试图像的格式应与用于训练的图像相同。例如,像素值为[0..1]或[0..256],RGB顺序或BGR顺序,平均减法等。只有当您对测试图像进​​行预处理与训练图像完全相同时,才能获得合理的结果。

一些有用的例子:http://nbviewer.jupyter.org/github/BVLC/caffe/blob/master/examples/00-classification.ipynb