Страницы

Поиск по вопросам

понедельник, 11 марта 2019 г.

Ошибка размерности массива в Python

Пишу нейронную сеть для распознавания цифр, вылезла ошибка - не могу разобраться как изменить размерность массива, код ниже
import numpy as np from keras.utils import np_utils from keras.models import model_from_json from keras.preprocessing import image import matplotlib.pyplot as plt %matplotlib inline
json_file = open("fully_mesh_network.json", "r") loaded_model_json = json_file.read() json_file.close() loaded_model = model_from_json(loaded_model_json) loaded_model.load_weights("fully_mesh_network.h5")
loaded_model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
img_path = '2.png' img = image.load_img(img_path, target_size=(28,28), grayscale=True)
x = image.img_to_array(img) x = 255 - x x/= 255 x = np.expand_dims(x, axis = 0)
prediction = loaded_model.predict(x) prediction = np_utils.categorical_probas_to_classes(prediction) print(prediction) ---------------------------------------------------------------------------
ValueError: Error when checking : expected dense_1_input to have 2 dimensions, but got array with shape (1, 28, 28, 1)


Ответ

Судя по ошибке ваша модель ожидает 2D массив на входе.
попробуйте так:
x = x.reshape(28, 28)
PS метод np_utils.categorical_probas_to_classes() - отсутствует в современных версиях Keras. Вместо него можно попробовать использовать метод: keras.utils.to_categorical()

Комментариев нет:

Отправить комментарий