【问题标题】:How to preprocess image before feeding into LeNet CNN in Caffe?如何在 Caffe 中输入 LeNet CNN 之前对图像进行预处理?
【发布时间】:2017-06-29 14:29:00
【问题描述】:

我在使用 Caffe 库将自己的图像输入 LeNet 时遇到问题。我已经毫无困难地部署并初始化了通过训练获得的权重。由于网络是使用 28x28 的输入大小进行训练的,我尝试将输入图像的大小调整为 28x28 并输入到部署的 LeNet,但它给了我 “unhashable numpy array” 错误。

不仅如此,我还尝试在调整大小后用img = img.transpose(img, (2,0,1)) 转置它,但它给了我“TypeError: only length-1 arrays can be convert to Python scalars”

以下是迄今为止我在预处理图像时尝试的 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 的初学者,还在学习中。我希望有人能给我一些示例或见解,说明如何在输入网络之前对图像进行预处理。

谢谢。

最好的问候。

【问题讨论】:

    标签: python artificial-intelligence deep-learning caffe


    【解决方案1】:

    改用这个:

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

    【讨论】:

    • 我得到了同样的错误:unhashable type: numpy.ndarray 当试图将它提供给网络时
    【解决方案2】:

    您可以使用caffe.io.Transformer 这用于预处理 caffe 'data' blob。 将其定义为

    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)
    

    【讨论】:

      猜你喜欢
      • 2018-09-09
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      • 2019-10-03
      • 2014-10-10
      • 2019-08-15
      • 1970-01-01
      • 2019-07-19
      相关资源
      最近更新 更多