Any guide on how the callbacks and hooks workflow works?
Hi!
I have been working with PyTorch lightning for a year or so, but I am still confused (probably because I am not a software developer and my development skills are not really sharp).
Do any of you know of any guide or reference on how callbacks and hooks interact with each other? Some of my particular questions are:

While training, where (or in which order) each callback (train_step, train_epoch_start...) is called?
How exactly do the hooks work?
I am aware that maybe this is a really basic question, but any advice on how to better understand the workflow would be great!
Thanks in advance, you rock guys!
hi!

There is a gif here representing the call order for some of the hooks. We are planning to add more info regarding this inside the docs. https://pytorch-lightning.readthedocs.io/en/latest/extensions/callbacks.html
You can consider hooks as just normal methods of objects that are called at certain points within the code. For eg when training starts it calls on_train_start, when training epoch starts it calls on_train_epoch_start etc... The hook name can also help you determine where it's called.

For a complete cycle, there can be just one lightning module, so hooks related to the lightning module will be called only once whenever they are required, but in the case of callbacks, it can be many so it sequentially makes the calls to the same hook at that time for each callback. You can read about callbacks and hooks here: https://pytorch-lightning.readthedocs.io/en/latest/extensions/callbacks.html