Pytorch之卷积层的使用详解


Posted in Python onDecember 31, 2019

1.简介(torch.nn下的)

卷积层主要使用的有3类,用于处理不同维度的数据

参数 Parameters:

in_channels(int) ? 输入信号的通道

out_channels(int) ? 卷积产生的通道

kerner_size(int or tuple) - 卷积核的尺寸

stride(int or tuple, optional) - 卷积步长

padding (int or tuple, optional)- 输入的每一条边补充0的层数

dilation(int or tuple, `optional``) ? 卷积核元素之间的间距

groups(int, optional) ? 从输入通道到输出通道的阻塞连接数

bias(bool, optional) - 如果bias=True,添加偏置

class torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

一维卷积层。用于计算ECG等一维数据。

input: (N,C_in,L_in) N为批次,C_in即为in_channels,即一批内输入一维数据个数,L_in是是一维数据基数

output: (N,C_out,L_out) N为批次,C_in即为out_channels,即一批内输出一维数据个数,L_out是一维数据基数

class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

二维卷积层。用于计算CT断层或MR断层,或二维超声图像,自然图像等二维数据。

self.conv1 = nn.Conv2d( # 1*28*28 -> 32*28*28
      in_channels=1,
      out_channels=32,
      kernel_size=5,
      stride=1,
      padding=2 #padding是需要计算的,padding=(stride-1)/2
    )

input: (N,C_in,H_in,W_in) N为批次,C_in即为in_channels,即一批内输入二维数据个数,H_in是二维数据行数,W_in是二维数据的列数

output: (N,C_out,H_out,W_out) N为批次,C_out即为out_channels,即一批内输出二维数据个数,H_out是二维数据行数,W_out是二维数据的列数

con2 = nn.Conv2d(1,16,5,1,2)
# con2(np.empty([1,1,28,28])) 只能接受tensor/variable
con2(torch.Tensor(1,1,28,28))
con2(Variable(torch.Tensor(1,1,28,28)))

class torch.nn.Conv3d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

三维卷积层。用于计算CT或MR等容积数据,视频数据等三维数据。

input: (N,C_in,D_in,H_in,W_in)

output: (N,C_out,D_out,H_out,W_out)

2.简介(torch.nn.functional下的)

在torch.nn.functional下也有卷积层,但是和torch.nn下的卷积层的区别在于,functional下的是函数,不是实际的卷积层,而是有卷积层功能的卷积层函数,所以它并不会出现在网络的图结构中。

torch.nn.functional.conv1d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

参数:

- input ? 输入张量的形状 (minibatch x in_channels x iW)

- weight ? 过滤器的形状 (out_channels, in_channels, kW)

- bias ? 可选偏置的形状 (out_channels)

- stride ? 卷积核的步长,默认为1

>>> filters = autograd.Variable(torch.randn(33, 16, 3))
>>> inputs = autograd.Variable(torch.randn(20, 16, 50))
>>> F.conv1d(inputs, filters)

torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

>>> # With square kernels and equal stride
>>> filters = autograd.Variable(torch.randn(8,4,3,3))
>>> inputs = autograd.Variable(torch.randn(1,4,5,5))
>>> F.conv2d(inputs, filters, padding=1)

torch.nn.functional.conv3d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

>>> filters = autograd.Variable(torch.randn(33, 16, 3, 3, 3))
>>> inputs = autograd.Variable(torch.randn(20, 16, 50, 10, 20))
>>> F.conv3d(inputs, filters)

以上这篇Pytorch之卷积层的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python发送邮件接收邮件示例分享
Jan 21 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
python实现汉诺塔递归算法经典案例
Mar 01 Python
python删除本地夹里重复文件的方法
Nov 19 Python
python连接mongodb密码认证实例
Oct 16 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
django的聚合函数和aggregate、annotate方法使用详解
Jul 23 Python
django的分页器Paginator 从django中导入类
Jul 25 Python
Python数据可视化:幂律分布实例详解
Dec 07 Python
解决使用Pandas 读取超过65536行的Excel文件问题
Nov 10 Python
Numpy中np.max的用法及np.maximum区别
Nov 27 Python
python神经网络Xception模型
May 06 Python
Python中bisect的使用方法
Dec 31 #Python
pytorch中tensor张量数据类型的转化方式
Dec 31 #Python
Pytorch之parameters的使用
Dec 31 #Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 #Python
Pytorch之view及view_as使用详解
Dec 31 #Python
window环境pip切换国内源(pip安装异常缓慢的问题)
Dec 31 #Python
如何基于Python创建目录文件夹
Dec 31 #Python
You might like
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
Yii入门教程之目录结构、入口文件及路由设置
2014/11/25 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
asm.js使用示例代码
2013/11/28 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
微信小程序之蓝牙的链接
2017/09/26 Javascript
详解vue中组件参数
2018/07/09 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
Django 请求Request的具体使用方法
2019/11/11 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
《草虫的村落》教学反思
2014/02/16 职场文书
婚前协议书
2014/04/15 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
工商局调档介绍信
2015/10/22 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
浅谈python中的多态
2021/06/15 Python
深入理解Pytorch微调torchvision模型
2021/11/11 Python
Django + Taro 前后端分离项目实现企业微信登录功能
2022/04/07 Python
浅谈Redis缓冲区机制
2022/06/05 Redis