For the first method:
            print("Conv!")
            print(cnn.features._modules[idx])
            cnn.features._modules[idx] = lnn.SpatialConvolution
            print(cnn.features._modules[idx])

The cnn.features._modules[idx] value is being changed to <class 'torch.legacy.nn.SpatialConvolution.SpatialConvolution'>, which I suspect is not correct:
Conv!
Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
<class 'torch.legacy.nn.SpatialConvolution.SpatialConvolution'>

So I should instead be taking those variables from Conv2d and putting them into SpatialConvolution()? Thought I’m not sure where to start for that?