Tensorflow: joblib Parallel не возвращается при обучении нескольких моделей на разных графических процессорах - PullRequest
0 голосов
/ 09 апреля 2019

По сути, я делаю:

devices = ['gpu_0', ..., 'gpu_N']
n_jobs = len(devices)
results = Parallel(n_jobs=n_jobs, verbose=5)(
    delayed(train_model)
    (device=device,
     stuff=...)
    for device, stuff in enumerate(zip(devices, stuffs))

train_model отлично работает при последовательном вызове:

def train_model(device, stuff):
    graph=...
    with graph.as_default():
        with tf.device(device):
            ...
    session=...

При вызове с Parallel я вижу, что все моделиправильно обучен для всех назначенных устройств, но по завершении Parallel никогда не возвращается.Набирая nvidia-smi, я замечаю, что все задания N фактически все еще назначены каждому графическому процессору (с активностью 0%), поэтому я подозреваю, что другие задания заблокированы другими.Есть ли способ запустить несколько тренировок одновременно с Python joblib?

...