What is the difference between passing user-defined callbacks when building a learner and when calling fit or fit-like function(like fit_one_cycle)?
I delved deeply into the library code. I found these two key lines:
callbacks = [cb(self) for cb in self.callback_fns + listify(defaults.extra_callback_fns)] + listify(callbacks)
fit(epochs, self, metrics=self.metrics, callbacks=self.callbacks+callbacks)
Looks like you combine all kinds of callbacks together before entering the real training loop,whether it’s
Learner.callback_fns, Learner.callbacks, or callbacks that are passed to fit function and even defaults.extra_callback_fns.
So I guess there really isn’t much difference between these two ways of passing callbacks, is there?