簡體   English   中英

BrokenProcessPool 在 cross_val_score 中使用 n_jobs 參數

[英]BrokenProcessPool on using n_jobs parameter in cross_val_score

sklearn.model_selection.cross_val_score使用n_jobs = -1作為參數時出現sklearn.model_selection.cross_val_score 我是深度學習和 ANN 的初學者,根據課程中 k 折交叉驗證的n_jobs = -1 ,使用n_jobs = -1來使用 CPU 的所有處理器以減少時間,但它在我的情況。

錯誤 -

BrokenProcessPool:任務無法反序列化。 請確保函數的參數都是可pickle的。

完整的堆棧跟蹤可以在這里找到。

import keras
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import cross_val_score
def build_classifier():
    classifier = Sequential()
    classifier.add(Dense(units = 6, kernel_initializer = 'uniform', activation = 'relu', input_dim = 11))
    classifier.add(Dense(units = 6, kernel_initializer = 'uniform', activation = 'relu'))
    classifier.add(Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))
    classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
    return classifier
classifier = KerasClassifier(build_fn = build_classifier, batch_size = 10, nb_epoch = 100)
accuracies = cross_val_score(estimator = classifier, X = X_train, y = Y_train, cv = 10, n_jobs = -1)

嘗試在外部文件中創建build_classifier函數並導入它。 例如:

在文件classifier_builder.py

import keras

def build_classifier():
  classifier = Sequential()
  classifier.add(Dense(units = 6, kernel_initializer = 'uniform', activation = 'relu', input_dim = 11))
  classifier.add(Dense(units = 6, kernel_initializer = 'uniform', activation = 'relu'))
  classifier.add(Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))
  classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
return classifier

然后在你的筆記本中:

import classifier_builder

classifier = KerasClassifier(build_fn = build_classifier, batch_size = 10, nb_epoch = 100)
accuracies = cross_val_score(estimator = classifier, X = X_train, y = Y_train, cv = 10, n_jobs = -1)

這為我解決了這個問題。 顯然,內聯函數是不可選擇的。

n_jobs =-1 不起作用,因為您的 gpu 已關閉,或者我說 gpu 未激活,您可以使用 cuda 命令激活它或使用這些鏈接激活 tensorflow-gpu

為 Windows 和 Anaconda 安裝 Tensorflow(GPU 版本)

如何在 Windows 10 上安裝 Tensorflow-GPU

或者你可以參考這個,了解 n_jobs

常用術語和 API 元素詞匯表-term-n-jobs

我通過使用 n_jobs=1 跳過了錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM