%reload_ext autoreload
%autoreload 2
%matplotlib inline
from fastai.vision import *
from fastai.imports import *
from fastai.metrics import error_rate
PATH = Path("../../data/lv_imgs/")
!ls {PATH}
!ls {PATH}/train
!ls {PATH}/train/fake_bags | wc -l
!ls {PATH}/train/real_bags | wc -l
sample_img = !ls {PATH}/train/fake_bags | head -n 1
#sample_img
img = plt.imread(f'{PATH}/train/fake_bags/{sample_img[0]}')
plt.imshow(img)
np.random.seed(561)
data = ImageDataBunch.from_folder(PATH,
ds_tfms=get_transforms(),
size=224,
valid_pct= .25,
bs=16
).normalize(imagenet_stats)
learn = create_cnn(data,
models.resnet50,
metrics=error_rate,
ps=.7)
learn.fit_one_cycle(4,
max_lr=slice(3e-05, 3e-04))
interp = ClassificationInterpretation.from_learner(learn)
losses,idxs=interp.top_losses()
interp.plot_top_losses(9)
interp.plot_confusion_matrix()
learn.unfreeze()
learn.lr_find()
learn.recorder.plot()
learn.fit_one_cycle(2,
max_lr=3e-4)
interp = ClassificationInterpretation.from_learner(learn)
losses,idxs=interp.top_losses()
interp.plot_confusion_matrix()
interp.plot_top_losses(9)
from fastai.widgets import *
ds, idxs = DatasetFormatter().from_toplosses(learn, ds_type=DatasetType.Train)
ImageCleaner(ds, idxs, PATH)