这篇文章主要为大家展示了“pytorch卷积核大小的设置对全连接神经元有什么影响”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“pytorch卷积核大小的设置对全连接神经元有什么影响”这篇文章吧。
3*3卷积核与2*5卷积核对神经元大小的设置
#这里kerner_size = 2*5 class CONV_NET(torch.nn.Module): #CONV_NET类继承nn.Module类 def __init__(self): super(CONV_NET, self).__init__() #使CONV_NET类包含父类nn.Module的所有属性 # super()需要两个实参,子类名和对象self self.conv1 = nn.Conv2d(1, 32, (2, 5), 1, padding=0) self.conv2 = nn.Conv2d(32, 128, 1, 1, padding=0) self.fc1 = nn.Linear(512, 128) self.relu1 = nn.ReLU(inplace=True) self.drop1 = nn.Dropout(0.5) self.fc2 = nn.Linear(128, 32) self.relu2 = nn.ReLU(inplace=True) self.fc3 = nn.Linear(32, 3) self.softmax = nn.Softmax(dim=1) def forward(self, x): x = self.conv1(x) x = self.conv2(x) x = x.view(x.size(0), -1) x = self.fc1(x) x = self.relu1(x) x = self.drop1(x) x = self.fc2(x) x = self.relu2(x) x = self.fc3(x) x = self.softmax(x) return x
主要看对称卷积核以及非对称卷积核之间的计算方式
#这里kerner_size = 3*3 class CONV_NET(torch.nn.Module): #CONV_NET类继承nn.Module类 def __init__(self): super(CONV_NET, self).__init__() #使CONV_NET类包含父类nn.Module的所有属性 # super()需要两个实参,子类名和对象self self.conv1 = nn.Conv2d(1, 32, 3, 1, padding=1) self.conv2 = nn.Conv2d(32, 128, 1, 1, padding=0) self.fc1 = nn.Linear(3200, 128) self.relu1 = nn.ReLU(inplace=True) self.drop1 = nn.Dropout(0.5) self.fc2 = nn.Linear(128, 32) self.relu2 = nn.ReLU(inplace=True) self.fc3 = nn.Linear(32, 3) self.softmax = nn.Softmax(dim=1) def forward(self, x): x = self.conv1(x) x = self.conv2(x) x = x.view(x.size(0), -1) x = self.fc1(x) x = self.relu1(x) x = self.drop1(x) x = self.fc2(x) x = self.relu2(x) x = self.fc3(x) x = self.softmax(x) return x
针对kerner_size=2*5,padding=0,stride=1以及kerner_size=3*3,padding=1,stride=1二者计算方式的比较如图所示
以上是“pytorch卷积核大小的设置对全连接神经元有什么影响”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。