首页 > 解决方案 > 使用 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 上运行

非常感谢任何帮助。谢谢你。

标签: pythontensorflowkerastensorflow2.0

解决方案


推荐阅读