Best practices for adapting models

What are best practices for adapting models that are already implemented in the library, for example I want to adapt efficientnet by constraining the weights
from torchvision.models import EfficientNet_V2_S_Weights, efficientnet_v2_s
Does it make more sense for someone else to be able to understand my code to copy all the necessary modules and indicate my changes, or do something with monkey patching, like Conv2d.forward = constraint_forward