我已经训练了一个分类器,现在我想通过任何单个图像。
我正在使用带有Tensorflow作为后端的keras库。
我收到的错误似乎无法过去
img_path = '/path/to/my/image.jpg'
import numpy as np
from keras.preprocessing import image
x = image.load_img(img_path, target_size=(250, 250))
x = image.img_to_array(x)
x = np.expand_dims(x, axis=0)
preds = model.predict(x)
我是否需要重塑我的数据以将None
作为第一维?我很困惑为什么Tensorflow希望None
作为第一个维度?
Error when checking : expected convolution2d_input_1 to have shape (None, 250, 250, 3) but got array with shape (1, 3, 250, 250)
我想知道我训练过的模型的架构是否存在问题?
编辑:如果我致电model.summary()
,请将convolution2d_input_1作为...
编辑:我确实玩过下面的建议,但使用numpy转置而不是tf - 似乎仍然遇到同样的问题!
答案 0 :(得分:2)
None
匹配任何数字。通常,当您将某些数据传递给模型时,您需要传递尺寸张量:None x data_size
,这意味着第一个维度是任何维度并表示批量大小。在您的情况下,问题是您传递了250 x 250 x 3
,并且预计会3 x 250 x 250
。尝试:
x = image.load_img(img_path, target_size=(250, 250))
x_trans = tf.transpose(x, perm=[2, 0, 1])
x_expanded = np.expand_dims(x_trans, axis=0)
preds = model.predict(x_expanded)
答案 1 :(得分:0)