预期卷积2D_Input_1具有4个维度,但具有形状的数组(150、150、1)



我训练了我的CNN,灰度图像为150x150,而培训就没有任何错误就进行了,每当我尝试运行型号。错误:

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说的是(无,150、150、1)

我一直在尝试解决这个问题几天,但没有任何运气。

如果要在单个图像上进行预测,则应添加一个维度,然后进行这样的预测:

import numpy as np
img = np.expand_dims(img, axis=0)
prediction = model.predict(img)

最新更新