muellerzr / fastblog

My fastai blog
https://muellerzr.github.io/fastblog
Apache License 2.0
21 stars 8 forks source link

Generating Comparitive Baselines for CAMVID with fastai’s Dynamic Unet | fastblog #12

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

Generating Comparitive Baselines for CAMVID with fastai’s Dynamic Unet | fastblog

Exploring how baselines are being made and where fastai can fit in

https://muellerzr.github.io/fastblog/papers/2020/09/18/CAMVID.html

riven314 commented 3 years ago

great post!

fabiogeraci commented 3 years ago

thanks you.

my data structure is different Path ---> train ---> images ---> masks ---> valid ---> images ---> masks

def label_func(x): return data_dir/f'train/masks/{x.stem}_masks.png'

my datablock db = DataBlock(blocks=(ImageBlock(),MaskBlock(codes)), batch_tfms= [ aug_transforms( mult=2.0, do_flip=True, flip_vert=True, max_rotate=20.0, min_zoom=0.75, max_zoom=1.25, max_lighting=0.05, #from 0.2 p_lighting=0.5), #from 0.75 Normalize.from_stats(imagenet_stats)], splitter=FolderSplitter(train_name='train', valid_name='val'), item_tfms=[Resize(im_size)], get_x=get_image_files, get_y=label_func )

ds = db.dataloaders(data_dir, bs=4)

error ~/my_tmp/env_fastai2/lib/python3.8/site-packages/fastai/data/block.py in datasets(self, source, verbose) 105 def datasets(self, source, verbose=False): 106 self.source = source ; pv(f"Collecting items from {source}", verbose) --> 107 items = (self.get_items or noop)(source) ; pv(f"Found {len(items)} items", verbose) 108 splits = (self.splitter or RandomSplitter())(items) 109 pv(f"{len(splits)} datasets of sizes {','.join([str(len(s)) for s in splits])}", verbose)

TypeError: object of type 'PosixPath' has no len()

could you let me know where I am going wrong, please?

fabiogeraci commented 3 years ago

data_dir_str = f'/mnt/Datasets/img_sets/SV_masks/' data_dir = Path(data_dir_str)