-
Notifications
You must be signed in to change notification settings - Fork 248
QA inference breaks on large dataset #454
Description
Describe the bug
QA inference failing on very large dataset
Error message
Inferencing Samples: 0 Batches [00:00, ? Batches/s]Traceback (most recent call last):
File "question_answering_inference.py", line 89, in
question_answering()
File "question_answering_inference.py", line 34, in question_answering
result = model.inference_from_file(file=filename, return_json=False, multiprocessing_chunksize=1)
File "/home/ubuntu/pycharm/timosyncNEW/farm/infer.py", line 645, in inference_from_file
multiprocessing_chunksize=multiprocessing_chunksize, streaming=streaming)
File "/home/ubuntu/pycharm/timosyncNEW/farm/infer.py", line 345, in inference_from_file
streaming=streaming,
File "/home/ubuntu/pycharm/timosyncNEW/farm/infer.py", line 637, in inference_from_dicts
multiprocessing_chunksize=multiprocessing_chunksize, streaming=streaming)
File "/home/ubuntu/pycharm/timosyncNEW/farm/infer.py", line 418, in inference_from_dicts
return list(predictions)
File "/home/ubuntu/pycharm/timosyncNEW/farm/infer.py", line 489, in _inference_with_multiprocessing
dataset, tensor_names, baskets
File "/home/ubuntu/pycharm/timosyncNEW/farm/infer.py", line 576, in _get_predictions_and_aggregate
for i, batch in enumerate(tqdm(data_loader, desc=f"Inferencing Samples", unit=" Batches", disable=self.disable_tqdm)):
File "/home/ubuntu/miniconda3/envs/py37/lib/python3.7/site-packages/tqdm/_tqdm.py", line 1060, in iter
for obj in iterable:
File "/home/ubuntu/miniconda3/envs/py37/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 345, in next
data = self._next_data()
File "/home/ubuntu/miniconda3/envs/py37/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 384, in _next_data
index = self._next_index() # may raise StopIteration
File "/home/ubuntu/miniconda3/envs/py37/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 339, in _next_index
return next(self._sampler_iter) # may raise StopIteration
File "/home/ubuntu/miniconda3/envs/py37/lib/python3.7/site-packages/torch/utils/data/sampler.py", line 200, in iter
for idx in self.sampler:
File "/home/ubuntu/miniconda3/envs/py37/lib/python3.7/site-packages/torch/utils/data/sampler.py", line 62, in iter
return iter(range(len(self.data_source)))
TypeError: object of type 'NoneType' has no len()
Additional context
I suspect this has to do with one whole chunk in multiprocessing not being transformed correctly. We should remove empty datasets before sending them to _get_predictions_and_aggregate.