question: why load_from_checkpoint is not defaultly inplace?
context: Why
  new_model = MyModel.load_from_checkpoint(checkpoint_path="example.ckpt")
  
  instead of
  MyModel.load_from_checkpoint(checkpoint_path="example.ckpt")
  
  The former one is not friendly to native PyTorch users. And cost me an afternoon to find the bug.
answer: load_from_checkpoint is a class function which instantiates the object with the hyper_parameters in the checkpoint and then loads the state_dict.
  If done like in your proposal my_model.load_from_checkpoint(checkpoint_path="example.ckpt") similar to pytorch's load_state_dict you'd have to create the my_model object first with the hyper_parameters parsed from the checkpoint and then load the weights. load_from_checkpoint combines both.
  Maybe adding a way to load the state_dict from a checkpoint into an already instantiated object without using a classmethod would make sense. Something like load_state_dict_from_checkpoint.
  The alternative is to load the checkpoint and then call model.load_state_dict(checkpoint['state_dict'], strict=strict).