python CNN的输入形状无效

fhity93d  于 2023-02-07  发布在  Python
关注(0)|答案(1)|浏览(131)

这是我的第一个ML项目没有任何教程,所以道歉,如果这是一个愚蠢的问题。
无论如何,我正在做一个CNN分类器,简单地把图像在2类之一(无精打采或直背)
我似乎无法让用于预测的输入图像与模型接受的维度相匹配。它应该输入100x100灰度图像。它不断返回以下错误:

WARNING:tensorflow:Model was constructed with shape (None, 100, 100, 1) for input KerasTensor(type_spec=TensorSpec(shape=(None, 100, 100, 1), dtype=tf.float32, name='reshape_input'), name='reshape_input', description="created by layer 'reshape_input'"), but it was called on an input with incompatible shape (None, 100).
    • 我尝试了各种方法来调整大小、形状和灰度(即使代码片段中没有),但我找不到有效的方法***

下面是相关的代码:
一个一个一个一个一个x一个一个二个一个x一个一个三个一个x一个一个x一个四个一个
我希望这对你来说是足够的信息!如果你需要更多关于代码的信息,请告诉我。
提前感谢:)

ttp71kqs

ttp71kqs1#

Tensorflow:使用形状构建模型(无、100、100、1)
您的模型需要(100, 100, 1)的输入形状。但是,您使用此形状准备输入:

slouchClassifier.predict(cv2.cvtColor(cv2.resize(frame, (100,100)), cv2.COLOR_BGR2GRAY))

cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)完全去掉了通道维度,生成了形状为(100, 100)的图像。您需要重新添加通道维度。一种方法是np.expand_dims(img, -1)
例如,

img = cv2.cvtColor(cv2.resize(frame, (100, 100)), cv2.COLOR_BGR2GRAY))
img = np.expand_dims(img, -1)
pred = slouchClassifier.predict(img)

相关问题