带keras-给定错误的卷积神经网络,UnboundLocalError:local变量“a”在赋值之前引用

2024-07-08 03:53:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我在下面写代码,但下面给出了错误 “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]
)

Tags: nameaddlayerinputmakemodellayers错误
3条回答

我在model.add(layers.Dropout(name='Droupout_inputlayer',rates=0.3))中看到了一些非常明显的拼写错误,比如“rates”而不是“rate”。在

然后在model.add(layers.Conv2D(filiters=32,activation='relu', name="Convoluationlayer_1",kernal_size=(3,3),border_mode='same'))中用“filters”代替“filters”,用“kernal_size”代替“kernel_size”。在

最后,model.add(layers.Activation('sigmod'))中的“sigmod”而不是“sigmoid”。在

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

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

我在我的终端上写了下面的代码,重新安装了python3,问题就解决了。在

$conda install-c conda forge tensorflow

相关问题 更多 >

    热门问题