gpt4 book ai didi

python - 如何在CNN中添加Dropout

转载 作者:行者123 更新时间:2023-11-30 08:57:00 25 4
gpt4 key购买 nike

我正在使用 CNN 训练时尚 MNIST 数据。由于过度拟合,我尝试添加 Dropout 层。但它不起作用

在添加 Dropout 之前,模型运行良好。

def fashion_model()
batch_size = 64
epochs = 20
num_classes = 10
fashion_drop_model = Sequential()
fashion_drop_model.add(Conv2D(32, kernel_size=(3, 3),activation='linear',padding='same',input_shape=(28,28,1)))
fashion_drop_model.add(LeakyReLU(alpha=0.1))
fashion_drop_model.add(MaxPooling2D((2, 2),padding='same'))
fashion_drop_model.add(Dropout(0.25))

fashion_drop_model.add(Conv2D(64, (3, 3), activation='linear',padding='same'))
fashion_drop_model.add(LeakyReLU(alpha=0.1))
fashion_drop_model.add(MaxPooling2D(pool_size=(2, 2),padding='same'))
fashion_drop_model.add(Dropout(0.25))

fashion_drop_model.add(Conv2D(128, (3, 3), activation='linear',padding='same'))
fashion_drop_model.add(LeakyReLU(alpha=0.1))
fashion_drop_model.add(MaxPooling2D(pool_size=(2, 2),padding='same'))
fashion_drop_model.add(Dropout(0.4))

fashion_drop_model.add(Flatten())
fashion_drop_model.add(Dense(128, activation='linear'))
fashion_drop_model.add(LeakyReLU(alpha=0.1))
fashion_drop_model.add(Dropout(0.3))
fashion_drop_model.add(Dense(num_classes, activation='softmax'))

return fashion_drop_model.summary()

fashion_model()

我收到的错误是:UnboundLocalError:赋值前引用了局部变量“a”

PS:逐行简要浏览代码后,我发现错误正在第 8 行蔓延 (fashion_drop_model.add(Dropout(0.25)))

最佳答案

您的 Python 函数定义中缺少冒号:

def fashion_model(): #<--

完成此操作后,代码应该运行。在 Google Colaboratory 中运行此程序,您将看到生成的模型摘要:

enter image description here

注意

强烈建议不要在卷积层之后使用 Dropout 层。卷积层的全部要点是利用空间邻域内的像素来提取正确的特征以馈入密集层。 Dropout 会破坏这种关系,从而阻止您的模型成功学习这些功能。

请参阅 Reddit 上的讨论了解更多详细信息:https://www.reddit.com/r/MachineLearning/comments/42nnpe/why_do_i_never_see_dropout_applied_in/

关于python - 如何在CNN中添加Dropout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56439066/

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