浅谈pytorch卷积核大小的设置对全连接神经元的影响

yipeiwu_com7年前Python基础

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卷积核大小的设置对全连接神经元的影响就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

浅析Python数字类型和字符串类型的内置方法

一、数字类型内置方法 1.1 整型的内置方法 作用 描述年龄、号码、id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10...

使用anaconda的pip安装第三方python包的操作步骤

相比于原生的python开发核心包,Anaconda已经集成了许多的第三方库,但是这在实际应用中是远远不够的,因此我们需要手动安装第三方库 使用pip可以快速的安装这些库 启动anaco...

Python使用base64模块进行二进制数据编码详解

前言 昨天团队的学妹来问关于POP3协议的问题,所以今天稍稍研究了下POP3协议的格式和Python里面的poplib。而POP服务器往回传的数据里有一部分需要用到Base64进行解码,...

python处理中文编码和判断编码示例

下面所说的都是针对python2.7 复制代码 代码如下:#coding:utf-8#chardet 需要下载安装 import chardet#抓取网页htmlline = "http...

Python MySQLdb模块连接操作mysql数据库实例

mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法。python操作数据库需要安装一个第三方的模块,在http:...