У меня есть функция, которая предсказывает изображения, используя файл модели предварительно подготовленных керасов. (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 )
Прогноз выполняется в течение нескольких минут, а затем выдает исключение. Не только после программы, иногда она запускается на несколько секунд, иногда она умирает сразу после завершения этой строки.
Как я могу отследить исключение?