在Pytorch中初始化conv2d层

在Pytorch中初始化conv2d层,pytorch,conv-neural-network,convolution,cnn,Pytorch,Conv Neural Network,Convolution,Cnn,我有以下神经网络架构: A(1x16x5x5)---\ -> concat(A,B) (1x32x5x5) --> Conv2D -> classification B(1x16x5x5)---/ Conv2D=nn.Conv2d(32,16, kernel_size = 1, stride = 1 , padding = 0) 如果我只想选择分支A进行测试,那么我初始化了Conv2d层,如下所示: convWeights = np.o

我有以下神经网络架构:

A(1x16x5x5)---\
                 -> concat(A,B) (1x32x5x5) --> Conv2D -> classification 
B(1x16x5x5)---/

Conv2D=nn.Conv2d(32,16, kernel_size = 1, stride = 1 , padding = 0)
如果我只想选择分支A进行测试,那么我初始化了Conv2d层,如下所示:

 convWeights = np.ones((16,32,1,1))
 convWeights[:,16:,:,:] = 0
 myNetwork.Conv2.weight = nn.Parameter(torch.from_numpy(convWeights).float().cuda()) 
 myNetwork.Conv2.bias.data.fill_(0)

然而,它没有给出预期的分类结果。因此,我认为,我对上述代码有问题,可能我遗漏了一些东西。简而言之,我如何初始化conv2d层,使其只选择分支A?

“但是,它没有给出预期的分类结果。”这是什么意思?你期望什么事情不会发生?你说的“选择A分支”是什么意思?您可以将权重归零,但这些权重仍将从图表中传递给Conv2D。预期分类结果:%10精度。选择分支A意味着设置conv2d图层权重,以便下一个图层上的计算仅受分支A的影响。