Hi,
I m getting the error while running this line of code on Planet’s data.
> sd = LabelLists.load_empty(path).add_test_folder(‘train-jpg’)
path contains export.pkl and the folder
> ---------------------------------------------------------------------------
> AttributeError Traceback (most recent call last)
> <ipython-input-24-daa621da3f2e> in <module>
> ----> 1 sd = LabelLists.load_empty(path).add_test_folder('train-jpg')
> 2 empty_data = sd.databunch()
>
> /opt/anaconda3/lib/python3.7/site-packages/fastai/data_block.py in add_test_folder(self, test_folder, label)
> 485 # note: labels will be ignored if available in the test dataset
> 486 items = self.x.__class__.from_folder(self.path/test_folder)
> --> 487 return self.add_test(items.items, label=label)
> 488
> 489 @classmethod
>
> /opt/anaconda3/lib/python3.7/site-packages/fastai/data_block.py in add_test(self, items, label)
> 478 labels = [label] * len(items)
> 479 if isinstance(items, ItemList): self.test = self.valid.new(items.items, labels, xtra=items.xtra)
> --> 480 else: self.test = self.valid.new(items, labels)
> 481 return self
> 482
>
> /opt/anaconda3/lib/python3.7/site-packages/fastai/data_block.py in new(self, x, y, **kwargs)
> 526 return self.__class__(x, y, tfms=self.tfms, tfm_y=self.tfm_y, **self.tfmargs)
> 527 else:
> --> 528 return self.new(self.x.new(x, **kwargs), self.y.new(y, **kwargs)).process()
> 529
> 530 def __getattr__(self,k:str)->Any:
>
> /opt/anaconda3/lib/python3.7/site-packages/fastai/data_block.py in process(self, xp, yp, filter_missing_y)
> 584 def process(self, xp:PreProcessor=None, yp:PreProcessor=None, filter_missing_y:bool=False):
> 585 "Launch the processing on `self.x` and `self.y` with `xp` and `yp`."
> --> 586 self.y.process(yp)
> 587 if filter_missing_y and (getattr(self.x, 'filter_missing_y', None)):
> 588 filt = array([o is None for o in self.y])
>
> /opt/anaconda3/lib/python3.7/site-packages/fastai/data_block.py in process(self, processor)
> 66 if processor is not None: self.processor = processor
> 67 self.processor = listify(self.processor)
> ---> 68 for p in self.processor: p.process(self)
> 69 return self
> 70
>
> /opt/anaconda3/lib/python3.7/site-packages/fastai/data_block.py in process(self, ds)
> 288 ds.classes = self.classes
> 289 ds.c2i = self.c2i
> --> 290 super().process(ds)
> 291
> 292 def __getstate__(self): return {'classes':self.classes}
>
> /opt/anaconda3/lib/python3.7/site-packages/fastai/data_block.py in process(self, ds)
> 36 def __init__(self, ds:Collection=None): self.ref_ds = ds
> 37 def process_one(self, item:Any): return item
> ---> 38 def process(self, ds:Collection): ds.items = array([self.process_one(item) for item in ds.items])
> 39
> 40 class ItemList():
>
> /opt/anaconda3/lib/python3.7/site-packages/fastai/data_block.py in <listcomp>(.0)
> 36 def __init__(self, ds:Collection=None): self.ref_ds = ds
> 37 def process_one(self, item:Any): return item
> ---> 38 def process(self, ds:Collection): ds.items = array([self.process_one(item) for item in ds.items])
> 39
> 40 class ItemList():
>
> /opt/anaconda3/lib/python3.7/site-packages/fastai/data_block.py in process_one(self, item)
> 329
> 330 def process_one(self,item):
> --> 331 if self.one_hot: return item
> 332 return [super(MultiCategoryProcessor, self).process_one(o) for o in item]
> 333
>
> AttributeError: 'MultiCategoryProcessor' object has no attribute 'one_hot'
This is the related Class and the function to this error -
class MultiCategoryProcessor(CategoryProcessor):
"`PreProcessor` that create `classes` from `ds.items` and handle the mapping."
def __init__(self, ds:ItemList, one_hot:bool=False):
super().__init__(ds)
self.one_hot = one_hot
def process_one(self,item):
if self.one_hot: return item
return [super(MultiCategoryProcessor, self).process_one(o) for o in item]
I m on the current master branch.