【发布时间】:2019-10-19 16:47:24
【问题描述】:
我正在使用 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:在逐行浏览代码后,我发现错误正在蔓延到第 8 行 (fashion_drop_model.add(Dropout(0.25)))
【问题讨论】:
-
你能告诉我们你的整个代码吗?我认为问题不在于
Dropout层。你在哪里使用变量a? -
你用的是哪个版本的tensorflow/python?
-
看起来更像是 Python 错误。检查您的代码是否存在虚假的
a。 -
@VishnuDasu 变量
a不在我的代码上下文中——可能来自模块 Dropout。 -
@ThibaultBacqueyrisses 版本:Python 3.7.3、Keras==2.2.4、tensorflow==1.13.1
标签: python machine-learning keras deep-learning conv-neural-network