%matplotlib inline from fastai.gen_doc.nbdoc import * from fastai.vision import * path = untar_data(URLs.MNIST_SAMPLE); path tfms = get_transforms(do_flip=False) data = ImageDataBunch.from_folder(path, ds_tfms=tfms, size=24) data.show_batch(rows=3, figsize=(5,5)) pd.read_csv(path/'labels.csv').head() data = ImageDataBunch.from_csv(path, ds_tfms=tfms, size=28) data.show_batch(rows=3, figsize=(5,5)) planet = untar_data(URLs.PLANET_SAMPLE) df =pd.read_csv(planet/'labels.csv') df.head() data = ImageDataBunch.from_csv(planet, folder='train', size=128, suffix='.jpg', label_delim=' ', ds_tfms=get_transforms(flip_vert=True, max_lighting=0.1, max_zoom=1.05, max_warp=0.)) data.show_batch(rows=3, figsize=(10,8), ds_type=DatasetType.Valid) show_doc(ImageDataBunch) show_doc(ImageDataBunch.from_folder) data = ImageDataBunch.from_folder(path, ds_tfms=tfms, size=24) show_doc(ImageDataBunch.from_csv) data = ImageDataBunch.from_csv(path, ds_tfms=tfms, size=24); show_doc(ImageDataBunch.from_df) df = pd.read_csv(path/'labels.csv', header='infer') df.head() data = ImageDataBunch.from_df(path, df, ds_tfms=tfms, size=24) show_doc(ImageDataBunch.from_name_re) fn_paths = [path/name for name in df['name']]; fn_paths[:2] pat = r"/(\d)/\d+\.png$" data = ImageDataBunch.from_name_re(path, fn_paths, pat=pat, ds_tfms=tfms, size=24) data.classes show_doc(ImageDataBunch.from_name_func) def get_labels(file_path): return '3' if '/3/' in str(file_path) else '7' data = ImageDataBunch.from_name_func(path, fn_paths, label_func=get_labels, ds_tfms=tfms, size=24) data.classes show_doc(ImageDataBunch.from_lists) labels_ls = list(map(get_labels, fn_paths)) data = ImageDataBunch.from_lists(path, fn_paths, labels=labels_ls, ds_tfms=tfms, size=24) data.classes show_doc(ImageDataBunch.create_from_ll) show_doc(ImageDataBunch.single_from_classes) jekyll_note('This method is deprecated, you should use DataBunch.load_empty now.') path = untar_data(URLs.CIFAR); path show_doc(channel_view) data = ImageDataBunch.from_folder(path, ds_tfms=tfms, valid='test', size=24) def channel_view(x:Tensor)->Tensor: "Make channel the first axis of `x` and flatten remaining axes" return x.transpose(0,1).contiguous().view(x.shape[1],-1) t = torch.Tensor(128, 3, 24, 24) t.size() tensor = channel_view(t) tensor.size() show_doc(ImageDataBunch.batch_stats) data.batch_stats() show_doc(ImageDataBunch.normalize) data.normalize(cifar_stats) data.batch_stats() show_doc(normalize) show_doc(denormalize) show_doc(normalize_funcs) data = ImageDataBunch.from_folder(untar_data(URLs.MNIST_SAMPLE), ds_tfms=tfms, size=24) data.normalize() data.show_batch(rows=3, figsize=(6,6)) show_doc(get_annotations) show_doc(bb_pad_collate) show_doc(ImageItemList, title_level=3) show_doc(ImageItemList.from_folder) show_doc(ImageItemList.from_df) show_doc(get_image_files) show_doc(ImageItemList.open) show_doc(ImageItemList.show_xys) show_doc(ImageItemList.show_xyzs) show_doc(ObjectCategoryList, title_level=3) show_doc(ObjectItemList, title_level=3) show_doc(SegmentationItemList, title_level=3) show_doc(SegmentationLabelList, title_level=3) show_doc(PointsLabelList, title_level=3) show_doc(PointsItemList, title_level=3) show_doc(ImageImageList, title_level=3) show_doc(download_images) show_doc(verify_images) show_doc(PointsItemList.get) show_doc(SegmentationLabelList.new) show_doc(ImageItemList.from_csv) show_doc(ObjectCategoryList.get) show_doc(ImageItemList.get) show_doc(SegmentationLabelList.reconstruct) show_doc(ImageImageList.show_xys) show_doc(ImageImageList.show_xyzs) show_doc(ImageItemList.open) show_doc(PointsItemList.analyze_pred) show_doc(SegmentationLabelList.analyze_pred) show_doc(PointsItemList.reconstruct) show_doc(SegmentationLabelList.open) show_doc(ImageItemList.reconstruct) show_doc(resize_to) show_doc(ObjectCategoryList.reconstruct) show_doc(PointsLabelList.reconstruct) show_doc(PointsLabelList.analyze_pred) show_doc(PointsLabelList.get) show_doc(ObjectCategoryList.analyze_pred)