gpt4 book ai didi

python - 输入形状的卷积神经网络错误

转载 作者:行者123 更新时间:2023-11-30 08:58:17 26 4
gpt4 key购买 nike

我有 1000 张 28*28 分辨率的图像。我将这 1000 张图像转换为 numpy 数组,并形成一个大小为 (1000,28,28) 的新数组。所以,虽然 使用keras创建卷积层,输入形状(X值)指定为(1000,28,28),输出形状(Y值)指定为(1000,10)。因为我有ve 1000 个示例是输入和 10 个类别的输出。

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),activation='relu',kernel_initializer='he_normal',input_shape=(1000,28,28)))
.
.
.
model.fit(train_x,train_y,batch_size=32,epochs=10,verbose=1)

因此,在使用 fit 函数时,它显示 ValueError: 检查输入时出错:预期 conv2d_1_input 有 4 个维度,但得到形状为 (1000, 28, 28) 的数组 作为错误。请帮助我为 CNN 提供正确的输入和输出维度。

代码:

 model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),activation='relu',kernel_initializer='he_normal',input_shape=(4132,28,28)))
model.add(MaxPooling2D((2, 2)))
model.add(Dropout(0.25))

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

model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(Dropout(0.4))

model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.3))
model.add(Dense(10, activation='softmax'))

model.compile(loss=keras.losses.categorical_crossentropy,optimizer=keras.optimizers.Adam(),metrics=['accuracy'])
model.summary()

train_x = numpy.array([train_x])

model.fit(train_x,train_y,batch_size=32,epochs=10,verbose=1)

最佳答案

您需要将输入更改为 4 个维度,并将 channel 设置为 1 : (1000, 28, 28, 1) 并且您需要更改 卷积层的 input_shape(28, 28, 1):

model.add(Conv2D(32, kernel_size=(3, 3),...,input_shape=(28,28,1)))

关于python - 输入形状的卷积神经网络错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50630657/

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