def load_dataset(*, sample_size=600, image_size=224) -> ImageDataBunch: labels = pd.read_csv(config.PROCESSED_DATA_DIR / 'labels_full.csv') classes = ['pneumonia', 'normal', 'COVID-19'] ds_types = ['train'] selected = [] for c in classes: for t in ds_types: selected.extend( labels[(labels.label == c) & (labels.ds_type == t)][:sample_size].values.tolist()) subset = pd.DataFrame(selected, columns=labels.columns) subset[['name', 'label']].to_csv(config.PROCESSED_DATA_DIR / 'labels.csv', index=False) tfms = _get_image_transformation() # will read from "labels.csv" in the data directory data = ImageDataBunch.from_csv(config.PROCESSED_DATA_DIR, ds_tfms=tfms, csv_labels=config.PROCESSED_DATA_DIR / 'labels.csv', valid_pct=0.1, seed=config.SEED, size=image_size, bs=21) data.normalize(imagenet_stats) return data
import torchvision from fastai.vision import ImageDataBunch, cnn_learner, unet_learner, SegmentationItemList, imagenet_stats data = ImageDataBunch.from_csv('fixtures/classification').normalize( imagenet_stats) learner = cnn_learner(data, torchvision.models.resnet34) learner.export() data = (SegmentationItemList.from_folder( 'fixtures/segmentation/images').split_none().label_from_func( lambda x: f'fixtures/segmentation/masks/{x.stem}.jpg', classes=[0, 1, 2]).databunch().normalize(imagenet_stats)) learner = unet_learner(data, torchvision.models.resnet50) learner.export('../export.pkl')