首页 > 解决方案 > NotImplementedError: __deepcopy__() 仅在启用急切执行时可用

问题描述

我正在使用 GridSearchCV 来调整我的 LSTM 模型的超参数:

def compile_lstm(self):



    '''create the layers'''

    self.model = keras.models.Sequential()
    self.model.add(keras.layers.LSTM(50))  
    self.model.add(keras.layers.Dense(1, activation='softmax'))
    self.model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['acc'])

    model = KerasClassifier(build_fn=self.model, verbose=0)
    # define the grid search parameters
    batch_size = [10, 20, 40, 60, 80, 100]
    epochs = [10, 50, 100]
    param_grid = dict(batch_size=batch_size, epochs=epochs)
    grid = GridSearchCV(estimator=model, param_grid=param_grid, n_jobs=-1)
    X = self.X
    Y = self.Y
    X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.20, random_state=42)
    grid_result = grid.fit(X, Y)
    # summarize results
    print("Best: %f using %s" % (grid_result.best_score_, grid_result.best_params_))
    means = grid_result.cv_results_['mean_test_score']
    stds = grid_result.cv_results_['std_test_score']
    params = grid_result.cv_results_['params']
    for mean, stdev, param in zip(means, stds, params):
        print("%f (%f) with: %r" % (mean, stdev, param))

但我收到以下错误:

NotImplementedError: deepcopy () 仅在启用急切执行时可用。

我怎样才能解决这个问题 ??

标签: python-3.xtensorflow

解决方案


正如我在 TF 中看到的,这是由于 Keras、TF.keras 和 TF 版本问题而发生的。

保存和加载模型(克隆)时,tf.keras 和 keras 模型略有不同。

这可能会对您有所帮助:https ://stackoverflow.com/a/52728435/9273317


推荐阅读