如何在Caffe中加入LeNet CNN之前对图像进行预处理?

时间:2017-02-11 06:20:26

标签: python artificial-intelligence deep-learning caffe

我在使用Caffe库将自己的图像输入LeNet时遇到了问题。我已经部署并初步确定了通过培训获得的重量没有任何困难。由于使用28x28的输入大小训练网络,我尝试将输入图像的大小调整为28x28并输入已部署的LeNet,但它给了我“unhashable numpy array”错误。

不仅如此,我还尝试在调整大小后用img = img.transpose(img, (2,0,1))转置它但是它给了我“TypeError:只有长度为1的数组可以转换为Python标量”

以下是我在预处理图像时尝试过的python代码:

img = caffe.io.load_image('number5.png')
img = caffe.io.resize_image(img, (28,28), interp_order=3)
img = img.transpose(img, (2,0,1))

我是使用Caffe的初学者,但仍处于学习过程中。我希望有人可以给我一些关于如何在进入网络之前预处理图像的示例或见解。

谢谢。

最好的问候。

2 个答案:

答案 0 :(得分:0)

请改用:

img = img.transpose((2,0,1))

答案 1 :(得分:0)

您可以使用caffe.io.Transformer 这用于预处理咖啡数据'斑点。 将其定义为

transformer = caffe.io.Transformer({'data':net.blobs['data'].data.shape})
transformer.set_transpose('data',(2,0,1))

那么你可以,

img = caffe.io.load_image('number5.png')
img = caffe.io.resize_image(img, (28,28), interp_order=3)
img_transposed=transformer.preprocess('data',img)