我正在使用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: local variable 'a' referenced before assignment
PS:在简短的逐行代码演练之后,我发现错误正在line8 (fashion_drop_model.add(Dropout(0.25)))中蔓延。
发布于 2019-06-04 07:29:18
在Python函数定义中缺少一个冒号:
def fashion_model(): #<--在您完成此操作之后,代码将运行。在Google Col堕胎中运行这个程序,您将看到您的模型的摘要已经生成:

备注
在卷积层之后使用Dropout层是非常不鼓励的。卷积层的全部目的是利用空间邻域内的像素来提取正确的特征,将其输入到密集层中。辍学会破坏这种关系,从而阻止您的模型成功地学习这些特性。
有关更多细节,请参见Reddit上的讨论:in/
https://stackoverflow.com/questions/56439066
复制相似问题