我有一个功能,可以使用预先训练的keras模型文件预测图像。 (cnn)我遇到的问题是,如果我对很多图像进行了分类(在100x100分辨率中超过2000张),则会引发以下异常:
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
由于我在预测时不使用多处理,所以我不知道这种异常可能来自何处。尤其是Error的最后一行是可疑的,最后是keras data_utils问题。奇怪的是,仅当分类花费的时间超过指定时间时才会发生。 在另一个程序中,我用相同的代码片段对该图像进行了更多分类,所以我认为这与图像数据生成器代码无关。无论在哪里使用try-except块,我都无法以任何方式捕获异常。
Y_pred = model.predict_generator(test_generator, num_of_test_samples, use_multiprocessing=False, verbose = 1 )
预测运行几分钟,然后引发异常。不仅在程序运行之后,它有时运行几秒钟,有时在该行结束之后就死掉。 我如何找到异常?