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处理文本文件并生成指定格式的文件
Jul 31 Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 Python
详谈python read readline readlines的区别
Sep 22 Python
Python实现正整数分解质因数操作示例
Aug 01 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
对python3标准库httpclient的使用详解
Dec 18 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
Python如何调用JS文件中的函数
Aug 16 Python
Centos7 下安装最新的python3.8
Oct 28 Python
python用opencv完成图像分割并进行目标物的提取
May 25 Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 Python
基于Python编写一个监控CPU的应用系统
Jun 25 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
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
jQuery 使用手册(五)
2009/09/23 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
城市规划应届毕业生自荐信
2014/07/04 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技