神经网络的权重随机初始化

在pytorch中,对神经网络卷积层的权重怎么进行随机初始化?

  • 这篇博客也许可以解决你的问题👉 :基于Pytorch的神经网络之基础理论
  • 除此之外, 这篇博客: pytorch实现简单的神经网络并训练中的 卷积神经网络 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • class CNN(nn.Module):
        def __init__(self):
            super(CNN,self).__init__()
            #定义卷积和全连接层
            self.c1 = nn.Conv2d(1,6,(5,5))
            self.c2 = nn.Conv2d(6,16,(5,5))
            self.fc1 = nn.Linear(256,120)
            self.fc2 = nn.Linear(120,84)
            self.fc3 = nn.Linear(84,10)
            
            
        def forward(self,x):
        	#全向方法
            #x = F.max_pool2d(F.relu(self.c1(x)),2)
            x = self.c1(x)
            x = F.relu(x)
            x = F.max_pool2d(x,2)
            x = self.c2(x)
            x = F.relu(x)
            x = F.max_pool2d(x,2)
            
            x = x.view(-1,self.num_flat_feature(x))
            x = self.fc1(x)
            x = F.relu(x)
            x = self.fc2(x)
            x = F.relu(x)
            x = self.fc3(x)
            return x
        
        def num_flat_feature(self,x):
            size = x.size()[1:]
            
            num_features = 1
            for s in size:
                num_features *= s
            return num_features
    
  • 您还可以看一下 龙良曲老师的深度学习与PyTorch入门实战教程课程中的 卷积神经网络-1小节, 巩固相关知识点