可能与 Keras、TensorFlow 和 scikit 存在兼容性问题 (tf.global_variables())

Possible compatibility issue with Keras, TensorFlow and scikit (tf.global_variables())

我正尝试在 Keras Regressor(使用 TensorFlow)上对我的数据集进行小测试,但我遇到了一个小问题。错误似乎出在 scikit 的 cross_val_score 函数上。它从它开始,最后的错误信息是:

File "/usr/local/lib/python2.7/dist-packages/Keras-2.0.2-py2.7.egg/keras/backend/tensorflow_backend.py", line 298, in _initialize_variables
variables = tf.global_variables()
AttributeError: 'module' object has no attribute 'global_variables'

我的完整代码基本上是 http://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/ 中的示例,稍作改动。 我查看了“'module' object has no attribute 'global_variables'”错误,它似乎与 Tensorflow 版本有关,但我使用的是最新版本 (1.0) 并且没有任何功能在直接与我可以更改的 tf 一起工作的代码中。以下是我的完整代码,无论如何我可以更改它以使其有效吗?感谢帮助

import numpy
import pandas
import sys

from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.datasets import load_svmlight_file


# define base mode
def baseline_model():
        # create model
        model = Sequential()
        model.add(Dense(68, activation="relu", kernel_initializer="normal", input_dim=68))
        model.add(Dense(1, kernel_initializer="normal"))
        # Compile model
        model.compile(loss='mean_squared_error', optimizer='adam')
        return model

X, y, query_id = load_svmlight_file(str(sys.argv[1]), query_id=True)
scaler = StandardScaler()
X = scaler.fit_transform(X.toarray())

# fix random seed for reproducibility
seed = 1
numpy.random.seed(seed)
# evaluate model with standardized dataset
estimator = KerasRegressor(build_fn=baseline_model, nb_epoch=100, batch_size=5, verbose=0)

kfold = KFold(n_splits=5, random_state=seed)
results = cross_val_score(estimator, X, y, cv=kfold)
print("Results: %.2f (%.2f) MSE" % (results.mean(), results.std()))

您可能使用的是较旧的 Tensorflow 版本安装 tensorflow 1.2.0rc2,您应该没问题。