python - 使用 Keras 和 TensorFlow-GPU v2.0 实现 K-fold 交叉验证
问题描述
嗨,我正在学习 k 折交叉验证,这第一段代码是构建一个简单的 ANN:
def buildModel():
# Fitting classifier to the Training set
# Create your classifier here
model = Sequential()
model.add(Dense(units = 6, input_dim = X.shape[1], activation = 'relu'))
model.add(Dense(units = 6, activation = 'relu'))
model.add(Dense(units = 1, activation = 'sigmoid'))
model.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
return model
然后我在 sklearn 中使用 cross_val_score 验证来运行 ANN。Keras 也在我的 GPU 上运行。
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import cross_val_score
model = KerasClassifier(build_fn = buildModel, batch_size = 10, epochs =100)
accuracies = cross_val_score(estimator = model, X = X_train, y = y_train, cv = 10, n_jobs = -1)
但是,如果我n_jobs = -1
尝试使用所有内核,则会出现错误(ps 我有 11 个功能):
Blas GEMM launch failed : a.shape=(10, 11), b.shape=(11, 6), m=10, n=6, k=11
[[node dense_1/MatMul (defined at C:\Users\Brandon Cardillo\AppData\Roaming\Python\Python37\site-packages\tensorflow_core\python\framework\ops.py:1751) ]]
[Op:__inference_keras_scratch_graph_1030]
Function call stack:
keras_scratch_graph
附言。我也在 jupyter notebook 上运行
非常感谢任何帮助。谢谢你。