> dls.one_batch() throwing this error: "'_FakeLoader' object has no attribute 'generator'" (SOLVED)

Just updated to PyTorch 1.6 and running off the master branch of fastai2 …

b = dls.one_batch()

throws …

AttributeError                            Traceback (most recent call last)
<ipython-input-18-ccb93b9fbe07> in <module>
----> 1 dls.one_batch()

~/development/projects/blurr/_libs/fastai2/fastai2/data/load.py in one_batch(self)
    130     def one_batch(self):
    131         if self.n is not None and len(self)==0: raise ValueError(f'This DataLoader does not contain any batches')
--> 132         with self.fake_l.no_multiproc(): res = first(self)
    133         if hasattr(self, 'it'): delattr(self, 'it')
    134         return res

~/development/projects/blurr/_libs/fastcore/fastcore/utils.py in first(x)
    182 def first(x):
    183     "First element of `x`, or None if missing"
--> 184     try: return next(iter(x))
    185     except StopIteration: return None
    186 

~/development/projects/blurr/_libs/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/blurr/lib/python3.7/site-packages/torch/utils/data/dataloader.py in __init__(self, loader)
    392 class _SingleProcessDataLoaderIter(_BaseDataLoaderIter):
    393     def __init__(self, loader):
--> 394         super(_SingleProcessDataLoaderIter, self).__init__(loader)
    395         assert self._timeout == 0
    396         assert self._num_workers == 0

~/anaconda3/envs/blurr/lib/python3.7/site-packages/torch/utils/data/dataloader.py in __init__(self, loader)
    348         self._collate_fn = loader.collate_fn
    349         self._sampler_iter = iter(self._index_sampler)
--> 350         self._base_seed = torch.empty((), dtype=torch.int64).random_(generator=loader.generator).item()
    351         self._num_yielded = 0
    352 

AttributeError: '_FakeLoader' object has no attribute 'generator'

Any ideas?

SOLVED (for now)

Appears that v2 doesn’t currently work with the latest version of PyTorch (v1.6.0).