首页 > 解决方案 > Kaggle 运行代码单元,然后无错误地结束

问题描述

我目前正在将 kaggle 的笔记本用于卷积神经网络,并使用以下代码运行了一个单元:

model = Sequential()

model.add(Conv2D(32, kernel_size=(3,3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D(2,2))
model.add(BatchNormalization())

model.add(Conv2D(64, kernel_size=(3,3), activation='relu'))
model.add(MaxPooling2D(2,2))
model.add(BatchNormalization())

model.add(Dropout(0.1))
model.add(Dense(10, activation='softmax'))

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5)

单元运行一秒钟然后突然停止并且不训练,但是,它也没有给我错误消息。它刚刚结束。当我在上面的单元格上运行以下 conv 神经网络结构时,它工作得非常好,并显示了时代和训练:

model = Sequential()

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

model_optimizer = Adam(lr=0.001)

model.compile(optimizer=model_optimizer, loss='sparse_categorical_crossentropy', metrics=['accuracy'])
history = model.fit(train_images, train_labels, epochs=10)

关于第一个单元格块不起作用的具体原因或任何想法?跟图层有关系吗?我注意到当我没有 Conv2D / Maxpooling 层时,单元格似乎运行良好。

标签: pythontensorflowneural-networkconv-neural-networkkaggle

解决方案


您需要使用之前将获得的Convolutional矩阵层压平,如下所示:Flatten layerDense layer

model.add(Dropout(0.1))
model.add(Flatten())    <------add Flatten layer
model.add(Dense(10, activation='softmax'))

推荐阅读