First version.
How to repeat results:
All notebooks can be run on google colab.
Install this repo version v0.0.1.:
pip install -e git+https://github.com/ayasyrev/imagenette_experiments@v0.0.1
Now import Model constructor and helper utils as:
from imagenette_experiments.train_utils import *
from imagenette_experiments.trick_model import *
Now create model constructor:
model = Model()
Now we can check model, for example:
model.body.l_1.bl_0
output
NewResBlock( (reduce): MaxBlurPool2d() (convs): Sequential( (conv_0): ConvLayer( (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) (act_fn): Mish() ) (conv_1): ConvLayer( (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (bn): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) (act_fn): Mish() ) (conv_2): ConvLayer( (conv): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) ) ) (idconv): ConvLayer( (conv): Conv2d(256, 512, kernel_size=(1, 1), stride=(1, 1), bias=False) (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) ) (merge): Mish() )
Lets create Learner:
learn = get_learn(woof=1, size=128, bs=64)
output
data path /root/.fastai/data/imagewoof2 Learn path /root/.fastai/data/imagewoof2
Now we cat train it regular fastai way, for example fit with annealing:
learn.fit_fc(tot_epochs=5, lr=1e-4, moms=(0.95,0.95), start_pct=0.72)