2017-02-11 9 views
0

У меня проблема с подачей собственного изображения в LeNet с использованием библиотеки Caffe. Я развернул и инициализировал вес, полученный с помощью тренировки, без каких-либо трудностей. Поскольку сеть обучается с использованием размера ввода 28x28, я попытался изменить размер входного изображения на 28x28 и подать на развернутый LeNet, но он дал мне «unhashable numpy array» ошибка.Как предварительно обработать изображение перед подачей в LeNet CNN в Caffe?

Мало того, я также попытался перенести его с img = img.transpose(img, (2,0,1)) после изменения размера, но он дал мне «TypeError: только длину-1 Массивы могут быть преобразованы в 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 и до сих пор в процессе обучения. Я надеюсь, что кто-то может дать мне пример или понять, как предварительно обработать изображение перед подачей в сеть.

Thank you.

С уважением.

ответ

0

Просто используйте вместо этого:

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

я получаю ту же ошибку: unhashable тип: numpy.ndarray при попытке кормить его к сети –

0

Вы можете использовать caffe.io.Transformer Это используется для сгустка 'данных' Preprocess Caffe. Определить как

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)