多重处理无法为我的即时数据扩充代码自动回收僵尸子进程

时间:2019-03-14 04:45:56

标签: python-multiprocessing data-augmentation

系统信息:

Linux Ubuntu
Docker
Python 3.6.8

我正在为医学图像分割进行实时数据增强。受faustomilletari/VNetline 158~161的启发,数据扩充的代码示例如下:

trainQueue = Queue(queue_size) # store patches
tr_dataPrep = [None] * nProc
for proc in range(nProc):
    tr_dataPrep[proc] = Process(target=data_aug_function, args=(train_files, trainQueue, patch_size))
    tr_dataPrep[proc].daemon = True
    tr_dataPrep[proc].start()

上面的代码在一台服务器上运行良好,现在无法使用,但是在另一台服务器上失败,一段时间后,那里有很多僵尸子进程出现,并且训练过程无限期地挂在那里。

似乎某些子进程已被系统杀死,但我们不知道为什么。

0 个答案:

没有答案