gpt4 book ai didi

python - 预期 conv2d_28_input 有 4 个维度,但得到的数组的形状仅包含 3 个维度

转载 作者:太空宇宙 更新时间:2023-11-03 19:46:50 25 4
gpt4 key购买 nike

我已经构建了一个图像分类模型,但收到一条错误消息 ValueError: 检查输入时出错:预期 conv2d_28_input 有 4 个维度,但得到了形状为 (341, 720, 3) 的数组

我还更改了 model.add 函数中的 input_shape

这是我构建的模型:


model = Sequential()

#3 Convolutional layers
input_shape = X.shape[1:]
model.add(Conv2D(64, (3,3), input_shape = X.shape[1:]))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Conv2D(64, (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Conv2D(64, (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))

#2 hidden layers
model.add(Flatten())
model.add(Dense(128))
model.add(Activation("relu"))

model.add(Dense(128))
model.add(Activation("relu"))


model.add(Dense(2))
model.add(Activation('softmax'))

model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=['accuracy'])

history=model.fit(X,y, batch_size=6, epochs=5, validation_split=0.1)

保存模型

model.save_weights("model.h5")
model.save('CNN.model')

预测输出类别

from keras.preprocessing.image import img_to_array, load_img

model = tf.keras.models.load_model("CNN.model")
image = load_img("/content/drive/My Drive/Images/Blackened/blackened-1.jpg") #image is stored here
final = img_to_array(image)
prediction = model.predict(final)
prediction = list(prediction[0])
print(CATEGORIES[prediction.index(max(prediction))])

当我运行最后的代码块时,我收到上面提到的错误

最佳答案

您需要添加数据中缺少的批处理维度,即使它是单个图像:

final = img_to_array(image)
final = np.expand_dims(final, axis=0)
prediction = model.predict(final)

关于python - 预期 conv2d_28_input 有 4 个维度,但得到的数组的形状仅包含 3 个维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60072548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com