Hey @muellerzr, i keep running into this issue with onnx conversion for multi-label text models. I don’t think the error is on the part of fastai2, but i can’t seem to index into the dataloader. Any thoughts?
learner = load_learner("text_classifier_version_3")
dl= learner.dls.test_dl(df['Message'][:100])
x=learner
orig_bs = x.dls[0].bs
x.dls[0].bs=1
dummy_inp = next(iter(x.dls[0]))
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-12-e93addb1c4d7> in <module>
2 orig_bs = x.dls[0].bs
3 x.dls[0].bs=1
----> 4 dummy_inp = next(iter(x.dls[0]))
5 # x.dls[0].bs = orig_bs
6 # x.dls[0].bs=1
/media/training/fastai2/fastai2/fastai2/data/load.py in __iter__(self)
96 self.randomize()
97 self.before_iter()
---> 98 for b in _loaders[self.fake_l.num_workers==0](self.fake_l):
99 if self.device is not None: b = to_device(b, self.device)
100 yield self.after_batch(b)
~/anaconda3/envs/fastai2_lm/lib/python3.7/site-packages/torch/utils/data/dataloader.py in __next__(self)
343
344 def __next__(self):
--> 345 data = self._next_data()
346 self._num_yielded += 1
347 if self._dataset_kind == _DatasetKind.Iterable and \
~/anaconda3/envs/fastai2_lm/lib/python3.7/site-packages/torch/utils/data/dataloader.py in _next_data(self)
854 else:
855 del self._task_info[idx]
--> 856 return self._process_data(data)
857
858 def _try_put_index(self):
~/anaconda3/envs/fastai2_lm/lib/python3.7/site-packages/torch/utils/data/dataloader.py in _process_data(self, data)
879 self._try_put_index()
880 if isinstance(data, ExceptionWrapper):
--> 881 data.reraise()
882 return data
883
~/anaconda3/envs/fastai2_lm/lib/python3.7/site-packages/torch/_utils.py in reraise(self)
392 # (https://bugs.python.org/issue2651), so we work around it.
393 msg = KeyErrorMessage(msg)
--> 394 raise self.exc_type(msg)
AttributeError: Caught AttributeError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "/home/mlbetty1/anaconda3/envs/fastai2_lm/lib/python3.7/site-packages/torch/utils/data/_utils/worker.py", line 137, in _worker_loop
fetcher = _DatasetKind.create_fetcher(dataset_kind, dataset, auto_collation, collate_fn, drop_last)
File "/home/mlbetty1/anaconda3/envs/fastai2_lm/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 41, in create_fetcher
return _utils.fetch._IterableDatasetFetcher(dataset, auto_collation, collate_fn, drop_last)
File "/home/mlbetty1/anaconda3/envs/fastai2_lm/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 21, in __init__
self.dataset_iter = iter(dataset)
File "/media/training/fastai2/fastai2/fastai2/data/load.py", line 27, in __iter__
def __iter__(self): return iter(self.d.create_batches(self.d.sample()))
File "/media/training/fastai2/fastai2/fastai2/data/load.py", line 92, in sample
idxs = self.get_idxs()
File "/media/training/fastai2/fastai2/fastai2/text/data.py", line 161, in get_idxs
idxs = super().get_idxs()
File "/media/training/fastai2/fastai2/fastai2/data/load.py", line 88, in get_idxs
if self.shuffle: idxs = self.shuffle_fn(idxs)
File "/media/training/fastai2/fastai2/fastai2/text/data.py", line 167, in shuffle_fn
idx_max = np.where(idxs==self.idx_max)[0][0]
File "/media/training/fastai2/fastcore/fastcore/foundation.py", line 234, in __getattr__
if attr is not None: return getattr(attr,k)
File "/media/training/fastai2/fastai2/fastai2/data/core.py", line 292, in __getattr__
def __getattr__(self,k): return gather_attrs(self, k, 'tls')
File "/media/training/fastai2/fastcore/fastcore/transform.py", line 155, in gather_attrs
if not res: raise AttributeError(k)
AttributeError: idx_max