【问题标题】:Error when checking : expected dense_3_input to have 2 dimensions, but got array with shape (28, 28, 1)检查时出错:预期 dense_3_input 有 2 维,但得到的数组形状为 (28, 28, 1)
【发布时间】:2017-10-19 02:57:32
【问题描述】:

我正在写一个神经元来确定手写数字

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

json_file = open("mnist_model.json", "r")
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
loaded_model.load_weights("mnist_model.h5")


loaded_model.compile(loss= "categorical_crossentropy", optimizer="adam", metrics=["accuracy"])


img_path ="5.png"
img = image.load_img(img_path, target_size=(28,28), grayscale=True)
plt.imshow(img, cmap='gray')
plt.show

x =image.img_to_array(img)
x = 255 - x 
x/= 255
np.expand_dims(x, axis=0)
prediction = loaded_model.predict(x)
prediction = np_utils.categorical_pobabs_to_classes(prediction)
print(prediction)

我所做的只是教她使用它,但随后问题就出现了: 1.结果是一个图表和错误ValueError: Error when checking : expected dense_3_input to have 2 dimensions, but got array with shape (28, 28, 1) in Line ´img = image.load_img(img_path, target_size=(28,28), grayscale=True)´

【问题讨论】:

  • 这个错误发生在哪一行?
  • 行 ´img = image.load_img(img_path, target_size=(28,28), grayscale=True)´
  • 能否提供图片文件?
  • @KenWei [链接] (google.ru/…)
  • ......我确信错误在loaded_model.predict(x)。这是一个非常典型的错误。您的模型需要形状 (28,28),但您正在传递形状为 (28,28,1) 的输入图像。只需在模型中相应地调整您的input_shape

标签: python neural-network keras anaconda


【解决方案1】:

我认为你的错在这一行

np.expand_dims(x, axis=0)

应该是:

x = np.expand_dims(x, axis=0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    相关资源
    最近更新 更多