[RFC] Thoughts on `on_init_start` and `on_init_end` hooks
These hooks are called when trainer initialization begins and ends, before the model has been set, essentially allowing the user to modify the Trainer constructor.  Should we be giving the user this much control over Trainer constructor? Are there scenarios where this is needed? Or can we deprecate these hooks?

  
    
      pytorch-lightning/pytorch_lightning/trainer/callback_hook.py
    
    
        Lines 55 to 63
      in
      338f3cf
    
  
  
    

        
          
           def on_init_start(self): 
        

        
          
               """Called when the trainer initialization begins, model has not yet been set.""" 
        

        
          
               for callback in self.callbacks: 
        

        
          
                   callback.on_init_start(self) 
        

        
          
            
        

        
          
           def on_init_end(self): 
        

        
          
               """Called when the trainer initialization ends, model has not yet been set.""" 
        

        
          
               for callback in self.callbacks: 
        

        
          
                   callback.on_init_end(self) 
        
    
  


cc @ananthsub
@carmocca @tchaton @awaelchli do you know how these hooks are used? Have you seen any examples of these being used by the community? These hooks go way way back, but I can't think of when they'd be needed given the user "owns" the Trainer initialization. It's also unclear when on_init_start actually happens: does that mean callbacks should be the first thing initialized?
it seems a lot more straightforward to write this:
trainer = Trainer(...)
run_all_my_fancy_logic_now(trainer)

# use the trainer here
Let's discuss in #10894