I’m suffering similar problem likes you.
So your conclusion is,

do not modify network’s method(e.g. forward) with types.MethodType when you are going to use nn.DataParallel.

right?
So you just create new class instead of modifying existing one.
But I still want to find a way to parallel revised model from existing one, not creating new model architecture with copying code.
Is there good way to solve this?