【问题标题】:Kaggle runs code cell and then ends without errorKaggle 运行代码单元,然后无错误地结束
【发布时间】:2021-04-28 03:49:18
【问题描述】:

我目前正在将 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 层时,单元格似乎运行良好。

【问题讨论】:

  • 你能分享一个可重现的代码吗?一个公开的 kaggle 笔记本会很棒。
  • @M.Innat,感谢您的评论,但我最终弄明白了!我在 Pycharm 中运行代码,Pycharm 给了我一个尺寸错误,所以我编辑了输入形状,然后返回 kaggle 并编辑 kaggle 版本以匹配编辑并运行。

标签: python tensorflow neural-network conv-neural-network kaggle


【解决方案1】:

您需要先使用Flatten layer 对获得的Convolutional 矩阵层进行展平,然后再将其输入Dense layer,如下所示:

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

【讨论】:

    猜你喜欢
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    相关资源
    最近更新 更多