我正在使用joblib库在多个CPU上同时运行多个NN。我想做一个最终的预测,作为所有不同神经网络预测的平均值。我在后端使用keras和theano。
如果我将n_job设置为1,但在任何情况下都失败,则我的代码正常工作。
以下是错误消息:
[Parallel(n_jobs=3)]: Using backend ThreadingBackend with 3 concurrent workers.
Using Theano backend.
WARNING (theano.gof.compilelock): Overriding existing lock by dead process '6088' (I am process '6032')
WARNING (theano.gof.compilelock): Overriding existing lock by dead process '6088' (I am process '6032')
我使用的代码相当简单(它适用于n_job=1)
from joblib import Parallel, delayed
result = Parallel(n_jobs=1,verbose=1, backend="threading")(delayed(myNNfunction)(arguments,i,X_train,Y_train,X_test,Y_test) for i in range(network))
os.environ['KERAS_BACKEND'] = 'theano'
os.environ["MKL_THREADING_LAYER"] = "GNU"
os.environ['MKL_NUM_THREADS'] = '3'
os.environ['GOTO_NUM_THREADS'] = '3'
os.environ['OMP_NUM_THREADS'] = '3'
我试过使用提议的技术
here
但这并没有改变什么。准确地说,我在C:\Users中创建了一个文件\我的名字.theanorc里面有这个:
[global]
base_compiledir=/tmp/%(user)s/theano.NOBACKUP
你知道我错过了什么吗?