ValueError:层“sequential_4”的输入0与该层不兼容:预期形状=(无,100,100,3),发现形状=(无,100,3)

问题描述 投票:0回答:1

我正在尝试使用我训练过的 CNN keras 模型来对图像进行分类。 我正在使用

model.predict(img)
,但我收到了预期形状的错误。 它说找到的
shape=(None,100,3
)和预期的形状=
(None,100,100,3)

CNN 设置代码为:

model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(image_size, image_size,dim3)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dense(2, activation='softmax'))

其中

image_size = 100
dim3 = 3

img.shape
返回
TensorShape([100,100,3])
。 为什么它期望第一个维度为空?我如何正确使用训练好的 CNN 进行分类和图像?

python tensorflow keras
1个回答
0
投票

如果您也包含了其余的代码,那就更容易了,但我猜测错误是由于 TensorFlow 模型接受批次,您只需向图像数组添加第一个维度即可,

img= img[None, ...] # Create a batch
© www.soinside.com 2019 - 2024. All rights reserved.