В наборе данных Fastai v2 нет метода show_batch

#fast-ai

#быстрый ai

Вопрос:

У меня возникли проблемы с тем, что в моем блоке данных нет методов show_batch при настройке в соответствии с моим собственным вариантом использования.

Я пытаюсь перенести часть своего кода с fastai v1 на v2. Работа с учебным пособием по блокировке данных https://docs.fast.ai/tutorial.datablock.html

Мой блок данных и набор данных:

 dblock = DataBlock(get_items = get_image_files,
                   get_y     = parent_label,
                   splitter  = RandomSplitter())

dsets = dblock.datasets("PlantVillage-Dataset/raw/color/")
dsets.train[0] # this works
 

Ошибка, которую я получаю при попытке dsets.show_batch() :

 ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-56-5a2f74730596> in <module>
----> 1 dsets.show_batch()

~/.pyenv/versions/3.7.8/envs/fastai/lib/python3.7/site-packages/fastai/data/core.py in __getattr__(self, k)
    315         return res if is_indexer(it) else list(zip(*res))
    316 
--> 317     def __getattr__(self,k): return gather_attrs(self, k, 'tls')
    318     def __dir__(self): return super().__dir__()   gather_attr_names(self, 'tls')
    319     def __len__(self): return len(self.tls[0])

~/.pyenv/versions/3.7.8/envs/fastai/lib/python3.7/site-packages/fastcore/transform.py in gather_attrs(o, k, nm)
    163     att = getattr(o,nm)
    164     res = [t for t in att.attrgot(k) if t is not None]
--> 165     if not res: raise AttributeError(k)
    166     return res[0] if len(res)==1 else L(res)
    167 

AttributeError: show_batch
 

Ответ №1:

 dls = dblock.dataloaders(path)
dls.show_batch()
 

После инициализации блока данных мне нужно было создать загрузчик данных для пакетного построения.