Maybe I was not clear before, I have read the code for fine_tune.
def fine_tune(self:Learner, epochs, base_lr=2e-3, freeze_epochs=1, lr_mult=100,
pct_start=0.3, div=5.0, **kwargs):
"Fine tune with `freeze` for `freeze_epochs` then with `unfreeze` from `epochs` using discriminative LR"
self.fit_one_cycle(freeze_epochs, slice(base_lr), pct_start=0.99, **kwargs)
base_lr /= 2
self.fit_one_cycle(epochs, slice(base_lr/lr_mult, base_lr), pct_start=pct_start, div=div, **kwargs)
So it’s setting base_lr=2e-3 by default. That’s what exactly I found confusing, because it doesn’t match this quote from fastbook
It will automatically change learning rates appropriately for most datasets.
As you suggested, I could use lr_find, however i wanted to know how is base_lr chosen under the hook of the library.
Hope this clarifies.