猿问

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

我在下面编写代码,但每次都在“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 model


model = 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]

)


慕娘9325324
浏览 235回答 3
3回答

翻翻过去那场雪

我可以看到一些非常明显的拼写错误,例如 '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在你的代码中没有看到任何变量,所以如果我是你,我会确保首先修复你的拼写错误,因为它们可能会以某种方式导致这个问题。

凤凰求蛊

我在我的终端上写了下面的代码并再次安装 python 3,问题解决了。$ conda install -c conda-forge tensorflow

陪伴而非守候

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
随时随地看视频慕课网APP

相关分类

Python
我要回答