期望convolution2d_input_1具有4个维度,但得到的数组形状为(150, 150, 1)

我用大小为150×150的灰度图像训练了我的CNN,训练过程中没有出现任何错误,但是每当我尝试运行model.predict()函数时,就会出现这个错误:

expected convolution2d_input_1 to have 4 dimensions, but got array with shape (150, 150, 1)

尽管我对传递给预测函数的图像进行了与训练CNN时使用的图像完全相同的预处理,并且它们的尺寸为150x150x1,与我的CNN的输入形状以及用于训练CNN的图像形状相同。

这是我的CNN代码:

model = Sequential()model.add(Conv2D(32, 3, 3, input_shape=(150, 150, 1), activation = 'relu'))model.add(MaxPooling2D(pool_size=(2, 2)))model.add(Conv2D(32, 3, 3, activation = 'relu'))model.add(MaxPooling2D(pool_size=(2, 2)))model.add(Conv2D(64, 3, 3, activation = 'relu'))model.add(MaxPooling2D(pool_size=(2, 2)))model.add(Flatten())  model.add(Dense(64, activation = 'relu'))model.add(Dropout(0.5))model.add(Dense(1, activation = 'softmax'))

输入大小为150x150x1,而我的CNN期望的输入形状是(None, 150, 150, 1)。

我已经尝试了几天解决这个问题,但没有任何进展。


回答:

如果你正在尝试对单张图像进行预测,你应该增加一个维度,然后像这样进行预测:

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注