EOFError: Ran out of input
报错信息如下:
Traceback (most recent call last):
File "G:/image/image-captioning-DLCT-main/eval.py", line 137, in <module>
scores = predict_captions(model, dict_dataloader_test, text_field,cider_test,args)
File "G:/image/image-captioning-DLCT-main/eval.py", line 30, in predict_captions
for it, ((detections, boxes, grids, masks), caps_gt) in enumerate(iter(dataloader)):
File "E:\Anaconda\envs\m2release\lib\site-packages\torch\utils\data\dataloader.py", line 352, in __iter__
return self._get_iterator()
File "E:\Anaconda\envs\m2release\lib\site-packages\torch\utils\data\dataloader.py", line 294, in _get_iterator
return _MultiProcessingDataLoaderIter(self)
File "E:\Anaconda\envs\m2release\lib\site-packages\torch\utils\data\dataloader.py", line 801, in __init__
w.start()
File "E:\Anaconda\envs\m2release\lib\multiprocessing\process.py", line 105, in start
self._popen = self._Popen(self)
File "E:\Anaconda\envs\m2release\lib\multiprocessing\context.py", line 223, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "E:\Anaconda\envs\m2release\lib\multiprocessing\context.py", line 322, in _Popen
return Popen(process_obj)
File "E:\Anaconda\envs\m2release\lib\multiprocessing\popen_spawn_win32.py", line 65, in __init__
reduction.dump(process_obj, to_child)
File "E:\Anaconda\envs\m2release\lib\multiprocessing\reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
TypeError: 'generator' object is not callable
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "E:\Anaconda\envs\m2release\lib\multiprocessing\spawn.py", line 105, in spawn_main
exitcode = _main(fd)
File "E:\Anaconda\envs\m2release\lib\multiprocessing\spawn.py", line 115, in _main
self = reduction.pickle.load(from_parent)
EOFError: Ran out of input
原因:由于在windows底下会出现这样的bug
解决办法:将workers的数量调整为0即可