@ptrblck, Actually my weight is based on Lasagne. I think the most critical part of my code is related to the convolution definition of mine, I mean the following code:
if ndim == 4:
    out_channel, in_channel, F, _ = p.shape
    if F == 11:
        extractor += [nn.Conv2d(in_channel, out_channel, F, stride=4, padding=0, bias=False)]
        extractor[-1].weight.data = torch.from_numpy(p)
    elif F==5:
        extractor += [nn.Conv2d(in_channel, out_channel, F, stride=1, padding=2, bias=False)]
        extractor[-1].weight.data = torch.from_numpy(p)
    elif F==3:
        extractor += [nn.Conv2d(in_channel, out_channel, F, stride=1, padding=1, bias=False)]
        extractor[-1].weight.data = torch.from_numpy(p)
        conv3 = True

My doubt about the problem was really about the difference of convolution operation in these two frameworks. What I have understood from your snippet is that you are going to first rotate the conv weights in Lasange and second assign it to the weight of Pytorch’s conv. Am I right?
By the way, Tnx for your response!