ValueError: невозможно преобразовать массив размера 50176 в форму (1,224,224,3) - PullRequest
0 голосов
/ 12 мая 2018

Я занимаюсь классификацией изображений, обучил модель и сохранил модель.Когда я пытаюсь предсказать модель, она показывает ошибку ввода.Я строю классификатор с использованием ResNet Architecture и первоначально объявил input_size как 224 x 224 .Теперь мне нужно предсказать класс тестового изображения.

Я конвертировал изображение в массив 224x224 .когда я пытаюсь использовать приведенный ниже код

#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)

в каком размере мне нужно изменить правильные размеры?

Спасибо!

1 Ответ

0 голосов
/ 12 мая 2018

Кажется, ваш ввод имеет размер [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)
...