Kerasrealt_generator выдает исключение после длительного запуска - PullRequest
0 голосов
/ 06 марта 2019

У меня есть функция, которая предсказывает изображения, используя файл модели предварительно подготовленных керасов. (cnn) У меня проблема в том, что если я классифицирую много изображений (более 2000 в разрешении 100x100), он выдает следующее исключение:

File "C:\Users\huszt\Anaconda3\envs\TensoFlowGPU\Lib\threading.py", line 884, in _bootstrap
  self._bootstrap_inner()
File "C:\Users\huszt\Anaconda3\envs\TensoFlowGPU\Lib\threading.py", line 916, in _bootstrap_inner
  self.run()
File "C:\Users\huszt\Anaconda3\envs\TensoFlowGPU\Lib\threading.py", line 864, in run
  self._target(*self._args, **self._kwargs)
File "C:\Users\huszt\Anaconda3\envs\TensoFlowGPU\Lib\multiprocessing\pool.py", line 119, in worker
  result = (True, func(*args, **kwds))
File "C:\Users\huszt\Anaconda3\envs\TensoFlowGPU\Lib\site-packages\keras\utils\data_utils.py", line 626, in next_sample
  return six.next(_SHARED_SEQUENCES[uid])

builtins.TypeError: 'NoneType' object is not an iterator

Поскольку я не использую многопроцессорность при прогнозировании, я понятия не имею, откуда может появиться это исключение. Особенно подозрительна последняя строка ошибки, которая в конце концов является проблемой keras data_utils. Как ни странно, это происходит только в том случае, если классификация занимает больше заданного времени. Я классифицировал намного больше, чем это изображение, с тем же фрагментом кода в другой программе, поэтому я не думаю, что речь идет о коде генератора данных изображения. Я не могу поймать исключение в любом случае, независимо от того, где я использую блок try-Кроме.

Y_pred = model.predict_generator(test_generator, num_of_test_samples, use_multiprocessing=False,   verbose = 1 ) 

Прогноз выполняется в течение нескольких минут, а затем выдает исключение. Не только после программы, иногда она запускается на несколько секунд, иногда она умирает сразу после завершения этой строки. Как я могу отследить исключение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...