由于 numpy 形状的张量流,keras 无法训练模型

我是新手,我正在尝试用 Keras 训练我的模型。我有14节课。


以下是我的训练和测试数据的形状:


print('train data shape:', X_train.shape)

print('one hot shape:', y_train.shape)

print('one hot shape:', y_test.shape)

print('Number of images in x_train', x_train.shape[0])

print('Number of images in x_test', x_test.shape[0])

输出:


train data shape: (77623, 28, 28, 1)

one hot shape: (77623, 14, 14)

one hot shape: (500, 14, 14)

Number of images in x_train 77623

Number of images in x_test 500

这是我的模型:


model = Sequential()

model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))

model.add(Conv2D(64, (3, 3), activation='relu'))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Dropout(0.25))

model.add(Flatten())

model.add(Dense(128, activation='relu'))

model.add(Dropout(0.5))

model.add(Dense(14, activation='softmax'))


model.compile(loss=keras.losses.categorical_crossentropy,

              optimizer=keras.optimizers.Adadelta(),

              metrics=['accuracy'])



print(model.summary())

型号概要:


Layer (type)                 Output Shape              Param #   

=================================================================

conv2d_58 (Conv2D)           (None, 26, 26, 32)        320       

_________________________________________________________________

conv2d_59 (Conv2D)           (None, 24, 24, 64)        18496     

_________________________________________________________________

max_pooling2d_27 (MaxPooling (None, 12, 12, 64)        0         

_________________________________________________________________

dropout_53 (Dropout)         (None, 12, 12, 64)        0         

_________________________________________________________________


这是对fit方法的调用:


history = model.fit(X_train, y_train,

          batch_size=batch_size,

          epochs=epochs,

          verbose=0,

          validation_data=(X_test, y_test), callbacks=[TQDMNotebookCallback()])

但我收到此错误:


Error when checking target: expected dense_53 to have 2 dimensions, but got array with shape (77623, 14, 14)


弑天下
浏览 140回答 2
2回答

陪伴而非守候

也许你必须把你的,input_shape=(28,28,1)因为你的图像是 28x28 灰度
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python