Я подготовил модель для распознавания рукописного ди git от MNIST. Форма ввода 1-го Conv2D: (28, 28, 1). После обучения я хотел предсказать загруженный образ ди git. Форма изображения была (1024, 791, 3), после применения следующего кода я изменил размер изображения до (28,28,1) и назвал model.predict ():
resized_image = cv2.resize(image, (28, 28))
#resized_image = tf.image.resize(image, size = (28,28))
resized_image = resized_image / 225.0
resized_image = resized_image[:,:,:1]
prediction = model.predict(resized_image)
#prediction = model.predict(resized_image, batch_size = 1, verbose = 1, steps = 1)
print(labels[np.argmax(prediction)])
Но я получаю следующую ошибку:
Ошибка при проверке ввода: ожидалось, что conv2d_17_input имеет 4 измерения, но получен массив с формой (28, 28, 1)
модель:
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(filters = 32, kernel_size = (3,3), padding = 'Same', activation = 'relu', input_shape = (28,28,1)),
tf.keras.layers.MaxPool2D(pool_size = (2,2)),
tf.keras.layers.Conv2D(filters = 64, kernel_size = (3,3), padding = 'Same', activation = 'relu'),
tf.keras.layers.MaxPool2D(pool_size = (2,2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation = 'relu'),
tf.keras.layers.Dense(10, activation = "softmax")
])
Я также пытался раскомментировать
resized_image = tf.image.resize(image, size = (28,28))
prediction = model.predict(resized_image, batch_size = 1, verbose = 1, steps = 1)
И все же я получил ту же ошибку.