Your idea makes generally sense.
One thing I would worry about is, if you are planning on using (Distributed)DataParallel at some point.
I’ve seen a lot of errors trying to just wrap the model into DDP, if there were a lot of these “convenience functions”.