为了账号安全,请及时绑定邮箱和手机立即绑定

带有 keras 的卷积神经网络给出错误,UnboundLocalError:

带有 keras 的卷积神经网络给出错误,UnboundLocalError:

慕娘9325324 2021-09-28 16:37:29
我在下面编写代码,但每次都在“UnboundLocalError:分配前引用的局部变量'a'”下面给出错误,我使用了keras.layers.BatchNormalization(),编程给了我这个错误。我该怎么办?怎么了?def make_CNN_model():    model = Sequential()    # input layer transformation (BatchNormalization + Dropout)    model.add(layers.BatchNormalization(name='inputlayer',input_shape=(28,28,1)))    model.add(layers.Dropout(name='Droupout_inputlayer',rates=0.3))    # convolutional layer (Conv2D + MaxPooling2D + Flatten + Dropout)    model.add(layers.Conv2D(filiters=32,activation='relu', name="Convoluationlayer_1",kernal_size=(3,3),border_mode='same'))    model.add(layers.MaxPooling2D(name='MaxPooling_1'))    model.add(layers.Flatten(name="Flaten_1"))    model.add(layers.Dropout(rate=0.3))    # fully connected layer (Dense + BatchNormalization + Activation + Dropout)    model.add(layers.Dense(name="FullyConnectedLayer_1",units=50))    model.add(layers.BatchNormalization())    model.add(layers.Activation('relu'))    model.add(layers.Dropout(rate=0.3))    # output layer (Dense + BatchNormalization + Activation)    model.add(layers.Dense(name = "Outputlayer", units=10))    model.add(layers.BatchNormalization())    model.add(layers.Activation('sigmod'))    return modelmodel = make_CNN_model()model.compile(    optimizer='Adam',    loss='categorical_crossentropy',    metrics=['accuracy'])summary = model.fit(    X_train, y_train_onehot,    batch_size=5000,    epochs=5,    validation_split=0.2,    verbose=1,    callbacks=[time_summary])
查看完整描述

3 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

我可以看到一些非常明显的拼写错误,例如 'rates' 而不是 'rate' in model.add(layers.Dropout(name='Droupout_inputlayer',rates=0.3))

然后,在model.add(layers.Conv2D(filiters=32,activation='relu', name="Convoluationlayer_1",kernal_size=(3,3),border_mode='same')).

最后, 'sigmod' 而不是 'sigmoid' model.add(layers.Activation('sigmod'))

a在你的代码中没有看到任何变量,所以如果我是你,我会确保首先修复你的拼写错误,因为它们可能会以某种方式导致这个问题。


查看完整回答
反对 回复 2021-09-28
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

我在我的终端上写了下面的代码并再次安装 python 3,问题解决了。

$ conda install -c conda-forge tensorflow


查看完整回答
反对 回复 2021-09-28
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

def make_CNN_model():


model = Sequential()

# input layer transformation (BatchNormalization + Dropout)

model.add(layers.BatchNormalization(name='inputlayer',input_shape=(28,28,1)))

model.add(layers.Dropout(name='Droupout_inputlayer',rate=0.3))


# convolutional layer (Conv2D + MaxPooling2D + Flatten + Dropout)

model.add(layers.Conv2D(filters=32,activation='relu', name="Convoluationlayer_1",kernel_size=(3,3),border_mode='same'))

model.add(layers.MaxPooling2D(name='MaxPooling_1'))

model.add(layers.Flatten(name="Flaten_1"))

model.add(layers.Dropout(rate=0.3))


# fully connected layer (Dense + BatchNormalization + Activation + Dropout)

model.add(layers.Dense(name="FullyConnectedLayer_1",units=50))

model.add(layers.BatchNormalization())

model.add(layers.Activation('relu'))

model.add(layers.Dropout(rate=0.3))


# output layer (Dense + BatchNormalization + Activation)

model.add(layers.Dense(name = "Outputlayer", units=10))

model.add(layers.BatchNormalization())

model.add(layers.Activation('sigmoid'))


return model


查看完整回答
反对 回复 2021-09-28
  • 3 回答
  • 0 关注
  • 234 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号