Return the MomentumNet counterpart of the model
The resnet one desires to turn into a Momentum ResNet.
The name of the submodules of the model one desires to make invertible.
Whether to leave to leave the first layer of each residual layer unchanged (useful if this first layer changes the dimension of the input).
The momentum term for the Momentum ResNet.
If True then the Momentum ResNet has a smaller memory footprint.
If True then the forward rule is x + f(x)
Examples
>>> import torch
>>> from momentumnet import transform_to_momentumnet
>>> from torchvision.models import resnet18
>>> resnet = resnet18(pretrained=True)
>>> layers = ["layer1", "layer2", "layer3", "layer4"]
>>> mresnet = transform_to_momentumnet(resnet,
... sub_layers=layers,
... gamma=0.9, use_backprop=False)
>>> import torch
>>> from momentumnet import transform_to_momentumnet
>>> transformer = torch.nn.Transformer(num_encoder_layers=6,
... num_decoder_layers=6)
>>> layers = ["encoder.layers", "decoder.layers"]
>>> mtransformer = transform_to_momentumnet(transformer,
... sub_layers=layers,
... gamma=0.9,
... use_backprop=False,
... keep_first_layer=False)