Сломанная труба во время тренировки модели Keras

Я тренирую несколько моделей Keras одну за другой на удаленном сервере, используя userdocker. Я подключаюсь к серверу через ssh и запускаю их на разных экранах.

Чтобы ускорить процесс, мне пришлось тренировать модели на 5 графических процессорах, так что 5 разных моделей тренируются одновременно.

В большинстве случаев модели тренируются без каких-либо проблем: я отсоединяю экран, выхожу с сервера и позволяю им работать в одночасье. Однако иногда они останавливаются с сообщением о сломанной трубе во время тренировки. Ниже я включаю последнюю часть сообщения, так как думаю, что оно может быть наиболее актуальным, но оно очень длинное и повторяющееся.

Я нашел этот вопрос с немного похожим сообщением об ошибке, и они связали это объяснение, но я не вижу, как я могу это исправить в моем случае или где я делаю ошибку в своем коде, которая может привести к этой проблеме, так как не всегда бывает

Кто-нибудь сталкивался с подобной проблемой при использовании Keras или userdocker? Как можно предотвратить это?

Сообщение об ошибке


23/24 [===========================>..] - ETA: 7s - убыток: 1.7797 - согласно: 0.2219 Traceback (большинство последний звонок последний):
Файл "/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, result = 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, имя метода, аргументы, kwds))
IOError: [Errno 32] Сломанная труба

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)
File "/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py", line 91, in wrapper return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/keras/models.py", line 1256, in fit_generator initial_epoch=initial_epoch)
File "/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py", line 91, in wrapper return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 2195, in fit_generator workers=0) File "/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py", line 91, in wrapper return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 2310, in evaluate_generator generator_output = next(output_generator)
File "/usr/local/lib/python2.7/dist-packages/keras/utils/data_utils.py", line 751, in get if not self.queue.empty(): File "", line 2, in empty File "/usr/lib/python2.7/multiprocessing/managers.py", line 758, in _callmethod conn.send((self._id, methodname, args, kwds)) IOError: [Errno 32] Broken pipe

0 ответов

Другие вопросы по тегам