我正在进行图像分类,我训练了一个模型并保存了一个模型。当我尝试预测模型时,它显示输入错误。我正在使用ResNet Architecture构建分类器,最初将input_size声明为224 x224。现在,我需要预测测试图像的类。

我将图像转换为224x224 numpy数组。当我尝试下面的代码

#plot the figure
fig = plt.figure()

for num,data in enumerate(test_data):

    img_num = data[1]
    img_data = data[0]

    y = fig.add_subplot(9,3,num+1)
    orig = img_data
    data = img_data.reshape(1,IMG_SIZ,IMG_SIZ,3)

    #predict the model
    model_out = model.predict_classes([orig])[0]

    if np.argmax(model_out) == 1: str_label='Dog'
    else: str_label='Cat'

    y.imshow(orig,cmap = 'gray')
    plt.title(str_label)
    y.axes.get_xaxis().set_visible(False)
    y.axes.get_yaxis().set_visible(False)


plt.show()
plt.savefig('test_labeled.jpg')


它显示了以下错误


  ValueError:无法将大小为50176的数组重塑为形状
  (1,224,224,3)


我必须重新调整正确尺寸的尺寸是多少?

谢谢!

最佳答案

似乎您输入的是[224, 224, 1]而不是[224, 224, 3]。好像您将输入内容转换为gray scale中的process_test_data()

您可能需要更改:

img = cv2.imread(path,cv2.IMREAD_GRAYSCALE)
img = cv2.resize(img,(IMG_SIZ,IMG_SIZ))


至:

img = cv2.imread(path)
img = cv2.resize(img,(IMG_SIZ,IMG_SIZ),3)

关于python - ValueError:无法将大小为50176的数组重塑为形状(1,224,224,3),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50306863/

10-13 00:00