如何在def中使用keras功能api?出现错误“ UnboundLocalError:分配前已引用局部变量'layers'”

问题描述 投票:0回答:2

我正在尝试在模型中使用KerasRegressor:

estimator = KerasRegressor(build_fn=create_model, epochs=num_epochs, batch_size=batch_size, verbose=0)
kfold = KFold(n_splits=10, random_state=seed_value)
results = cross_val_score(estimator, input_var, output_var, cv=kfold)

在教程中,使用以下方法创建模型:

def create_model():

    # create model
    model = Sequential()
    model.add(Dense(2, input_dim=3, kernel_initializer='normal', activation='relu'))
    model.add(Dense(2, kernel_initializer='normal', activation='relu'))
    model.add(Dense(1, kernel_initializer='normal'))
    model.compile(loss='mean_squared_error', optimizer=adam)

    return model

有效。但是,当我尝试使用功能性keras而不是顺序的keras时:

def create_model():

    # create model
    #Start defining the input tensor:
    input_data = layers.Input(shape=(3,))

    #create the layers and pass them the input tensor to get the output tensor:

    hidden1Out = Dense(units=2, activation='relu')(input_data)
    finalOut = Dense(units=2, activation='relu')(hidden1Out)

    output = Dense(1, activation='linear', name='u')(finalOut)  


    # Compile model
    model.compile(loss='mean_squared_error', optimizer=adam)

    return model

我收到错误消息“ UnboundLocalError:分配前引用了局部变量'layers']

它发生在:

input_data = layers.Input(shape=(3,))

那么这怎么了?我该如何解决?

python keras deep-learning keras-layer
2个回答
0
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.