我正在使用userdocker在远程服务器上一个接一个地训练一些Keras模型 . 我通过ssh连接到服务器,让它们在不同的屏幕上运行 .

为了加快速度,我在5个GPU上进行了模型训练,这样就可以同时训练5种不同的模型 .

大多数情况下,模型训练没有任何问题:我分离屏幕,从服务器注销,让他们一夜之间运行 . 然而,有时候,他们会在训练过程中因管道信息丢失而停下来 . 下面我列出了消息的最后部分,因为我认为它可能是最相关的,但它很长且重复 .

我发现这个question有一个略微相似的错误信息,他们将它们链接到这个explanation,但是我没有看到我如何能够在我的情况下修复它或者我总是会发生这种情况 .

有没有人在使用Keras或userdocker时遇到类似的问题?如何防止它发生?

Error Message


23/24 [===========================> ..] - ETA:7s - 损失:1.7797 - acc:0.2219回溯(最近调用最后一次):文件“/usr/local/lib/python2.7/dist-packages/keras/utils/data_utils.py”,第655行,在_data_generator_task self.queue.put((True,generator_output))文件中“”,第2行,放入文件“/usr/lib/python2.7/multiprocessing/managers.py”,第759行,在_callmethod种类中,结果= conn.recv()EOFError进程处理-259:回溯(最新版本)最后调用):文件“/usr/lib/python2.7/multiprocessing/process.py”,第258行,在_bootstrap self.run()文件“/usr/lib/python2.7/multiprocessing/process.py”中,第114行,在运行self._target(* self._args,** self._kwargs)文件“/usr/local/lib/python2.7/dist-packages/keras/utils/data_utils.py”,第665行,在_data_generator_task self.queue.put((False,e))文件“”,第2行,放入文件“/usr/lib/python2.7/multiprocessing/managers.py”,第758行,在_callmethod conn.send(( self._id,methodname,args,kwds))IOError:[Errno 32] Broken pipe Traceback(最新版本)最后调用):文件“main.py”,第406行,在group_main(sys.argv [1:]中)文件“main.py”,第346行,在group_main steps_per_epoch中)文件“/ netscratch / user01 / perge / scripts / pycharm_perge / model_trainer.py“,第78行,在train_model steps_per_epoch = steps_per_epoch,epochs = epochs,callbacks = callBacksList)文件”/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py“,第91行,在包装器中返回func(* args,** kwargs)文件“/usr/local/lib/python2.7/dist-packages/keras/models.py”,第1256行,在fit_generator中initial_epoch = initial_epoch)文件“ /usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py“,第91行,在包装器中返回func(* args,** kwargs)文件”/ usr / local / lib / python2 . 7 / dist-packages / keras / engine / training.py“,第2195行,在fit_generator workers = 0中)文件”/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py“,第91行,在包装返回函数(* args,** kwargs)文件“/usr/local/lib/python2.7/dist-packages/keras/engine/training.py”,第2310行,在evaluate_generator gen中erator_output = next(output_generator)文件“/usr/local/lib/python2.7/dist-packages/keras/utils/data_utils.py”,第751行,in get if not self.queue.empty():File“” ,第2行,在空文件“/usr/lib/python2.7/multiprocessing/managers.py”,第758行,在_callmethod conn.send((self._id,methodname,args,kwds))IOError:[Errno 32 ]破管