Useful info, thanks.
But I got stuck here.
class SegLabelList(SegmentationLabelList):
def open(self, fn): return open_mask_image(fn)
class SegItemList(SegmentationItemList):
_label_cls = SegLabelList
data = (SegItemList
.from_folder(dir_data_train, extensions=['.dcm'], recurse=True)
.split_by_rand_pct(valid_pct=0.2, seed=7)
.label_from_func(lambda x : str(x), classes=[0, 1])
.transform(get_transforms(), size=image_training_size, tfm_y=True)
.databunch(bs=batch_size)
.normalize(imagenet_stats)
)
test_list = (ImageList
.from_folder(dir_data_test, extensions=['.dcm'], recurse=True)
.split_none()
)
data.add_test(test_list, label=None, tfm_y=False)
I get this error:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-9-fc08dbbead4b> in <module>
78 )
79
---> 80 data.add_test(test_list, label=None, tfm_y=False)
81
82 print(get_time(), 'DataBunch created. Train/valid/test size:', len(data.train_ds), '/', len(data.valid_ds))
/opt/conda/lib/python3.6/site-packages/fastai/basic_data.py in add_test(self, items, label, tfms, tfm_y)
156 def add_test(self, items:Iterator, label:Any=None, tfms=None, tfm_y=None)->None:
157 "Add the `items` as a test set. Pass along `label` otherwise label them with `EmptyLabel`."
--> 158 self.label_list.add_test(items, label=label, tfms=tfms, tfm_y=tfm_y)
159 vdl = self.valid_dl
160 dl = DataLoader(self.label_list.test, vdl.batch_size, shuffle=False, drop_last=False, num_workers=vdl.num_workers)
/opt/conda/lib/python3.6/site-packages/fastai/data_block.py in add_test(self, items, label, tfms, tfm_y)
555 "Add test set containing `items` with an arbitrary `label`."
556 # if no label passed, use label of first training item
--> 557 if label is None: labels = EmptyLabelList([0] * len(items))
558 else: labels = self.valid.y.new([label] * len(items)).process()
559 if isinstance(items, MixedItemList): items = self.valid.x.new(items.item_lists, inner_df=items.inner_df).process()
TypeError: object of type 'ItemLists' has no len()
Where does ItemLists come from, if I’m passing ImageList (singular) to add_test function?