from fastai.gen_doc.nbdoc import * jekyll_note("""As usual, this page is generated from a notebook that you can find in the docs_src folder of the fastai repo. We use the saved models from this tutorial to have this notebook run quickly.""") from fastai.vision import * mnist = untar_data(URLs.MNIST_TINY) tfms = get_transforms(do_flip=False) data = (ImageList.from_folder(mnist) .split_by_folder() .label_from_folder() .add_test_folder('test') .transform(tfms, size=32) .databunch() .normalize(imagenet_stats)) learn = cnn_learner(data, models.resnet18).load('mini_train') learn.export() learn = load_learner(mnist) img = data.train_ds[0][0] learn.predict(img) learn = load_learner(mnist, test=ImageList.from_folder(mnist/'test')) preds,y = learn.get_preds(ds_type=DatasetType.Test) preds[:5] planet = untar_data(URLs.PLANET_TINY) planet_tfms = get_transforms(flip_vert=True, max_lighting=0.1, max_zoom=1.05, max_warp=0.) data = (ImageList.from_csv(planet, 'labels.csv', folder='train', suffix='.jpg') .split_by_rand_pct() .label_from_df(label_delim=' ') .transform(planet_tfms, size=128) .databunch() .normalize(imagenet_stats)) learn = cnn_learner(data, models.resnet18).load('mini_train') learn.export() learn = load_learner(planet) img = data.train_ds[0][0] learn.predict(img) learn.predict(img, thresh=0.3) biwi = untar_data(URLs.BIWI_SAMPLE) fn2ctr = pickle.load(open(biwi/'centers.pkl', 'rb')) data = (PointsItemList.from_folder(biwi) .split_by_rand_pct(seed=42) .label_from_func(lambda o:fn2ctr[o.name]) .transform(get_transforms(), tfm_y=True, size=(120,160)) .databunch() .normalize(imagenet_stats)) learn = cnn_learner(data, models.resnet18, lin_ftrs=[100], ps=0.05).load('mini_train'); learn.export() learn = load_learner(biwi) img = data.valid_ds[0][0] learn.predict(img) img.show(y=learn.predict(img)[0]) camvid = untar_data(URLs.CAMVID_TINY) path_lbl = camvid/'labels' path_img = camvid/'images' codes = np.loadtxt(camvid/'codes.txt', dtype=str) get_y_fn = lambda x: path_lbl/f'{x.stem}_P{x.suffix}' data = (SegmentationItemList.from_folder(path_img) .split_by_rand_pct() .label_from_func(get_y_fn, classes=codes) .transform(get_transforms(), tfm_y=True, size=128) .databunch(bs=16, path=camvid) .normalize(imagenet_stats)) learn = unet_learner(data, models.resnet18).load('mini_train'); learn.export() learn = load_learner(camvid) img = data.train_ds[0][0] learn.predict(img); img.show(y=learn.predict(img)[0]) from fastai.text import * imdb = untar_data(URLs.IMDB_SAMPLE) data_lm = load_data(imdb) learn = language_model_learner(data_lm, AWD_LSTM, pretrained=False).load('mini_train_lm', with_opt=False); learn.export(file = 'export_lm.pkl') learn = load_learner(imdb, file = 'export_lm.pkl') learn.predict('This is a simple test of', n_words=20) learn.beam_search('This is a simple test of', n_words=20, beam_sz=200) data_clas = (TextList.from_csv(imdb, 'texts.csv', cols='text', vocab=data_lm.vocab) .split_from_df(col='is_valid') .label_from_df(cols='label') .databunch(bs=42)) learn = text_classifier_learner(data_clas, AWD_LSTM, pretrained=False).load('mini_train_clas', with_opt=False); learn.export(file = 'export_clas.pkl') learn = load_learner(imdb, file = 'export_clas.pkl') learn.predict('I really loved that movie!') from fastai.tabular import * adult = untar_data(URLs.ADULT_SAMPLE) df = pd.read_csv(adult/'adult.csv') dep_var = 'salary' cat_names = ['workclass', 'education', 'marital-status', 'occupation', 'relationship', 'race', 'sex', 'native-country'] cont_names = ['education-num', 'hours-per-week', 'age', 'capital-loss', 'fnlwgt', 'capital-gain'] procs = [FillMissing, Categorify, Normalize] data = (TabularList.from_df(df, path=adult, cat_names=cat_names, cont_names=cont_names, procs=procs) .split_by_idx(valid_idx=range(800,1000)) .label_from_df(cols=dep_var) .databunch()) learn = tabular_learner(data, layers=[200,100], metrics=accuracy) learn.fit(1, 1e-2) learn.save('mini_train') learn.export() learn = load_learner(adult) learn.predict(df.iloc[0])