Pytorch-学习记录 卷积操作——Tensor.size()
设计网络结构、看网络结构源码时时常需要计算输入在结构中经过卷积层、pooling层后尺寸大小,特此记录。
pytorch中二维卷积层接口为 Conv2d() ,参数详情不多赘述,详情请参阅官方文档。我在此主要说明卷积层对输入计算之后size的变化情况。
例如,
卷积层的in_channels首先要与input的channels相对应,具体到上例,就是黑色和蓝色框所对应的部分。out_channels自行设定,表示输出卷积核个数。kernel_size为卷积核大小,stride为卷积核在输入上的窗口移动步长,当输入stride参数为int时,表示卷积核移动在横向与纵向都是相同步长,若stride=(x,y),表示在横轴与纵轴以不同步长滑动。 padding简单理解为对输入特征图四周的填充。kernel_size、padding、stride会影响输出特征图的尺寸。
从上图可知,输入的 batchsize=64 在网络结构前向传递过程中不改变大小。同时,在kernel_size=3,stride=1,padding=1的前提下,卷积不改变输入图像的尺寸。
特征图尺寸计算方式:
feature-map height : {(input_height - kernel_size + 2*padding) / stride[0] }+1 (stride[0]表示横向移动步长])
相似地,feature-map width : {(input_width - kernel_size + 2*padding) / stride[1] }+1 (stride[1]表示纵向移动步长])
再举个例子,输入经过两层卷积和一层pooling后尺寸。
计算过程:
经过第一层卷积后:(224-7+2*2)/2+1=111
第二层卷积:(111-3+1*2)/1+1=111
pooling:(111-3)/2+1=55
每一层的输出channels即是下一层的输入channels。
Resnet、Inception结构中有大量kernel_size=3,stride=1,padding=1的层,他们不改变特征图图大小。
总结一下,设计网络结构时候要注意输入channels和卷积层的in_channels保持一致,不同的kernel_size、padding、stride会影响输出特征图尺寸。
参考资料:
pytorch中文文档 http://pytorch-cn.readthedocs.io/zh/latest/
---------------------
作者:_Neo__
来源:CSDN
原文:https://blog.csdn.net/a132582/article/details/78658155
版权声明:本文为博主原创文章,转载请附上博文链接!
Pytorch-学习记录 卷积操作——Tensor.size()相关推荐
- Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...
- PyTorch学习记录——PyTorch进阶训练技巧
PyTorch学习记录--PyTorch进阶训练技巧 1.自定义损失函数 1.1 以函数的方式定义损失函数 1.2 以类的方式定义损失函数 1.3 比较与思考 2.动态调整学习率 2.1 官方提供的s ...
- pytorch中的卷积操作详解
首先说下pytorch中的Tensor通道排列顺序是:[batch, channel, height, width] 我们常用的卷积(Conv2d)在pytorch中对应的函数是: torch.nn. ...
- 黄金时代 —— Pytorch学习记录(一)
文章目录 Tensor Tensor操作 桥接 NumPy Cuda张量 Autograd:自动求导 张量 梯度 定义网络 关于nn和nn.Module模块 网络 BP过程 损失函数 反向传播 更新权 ...
- PyTorch学习记录——PyTorch生态
Pytorch的强大并不仅局限于自身的易用性,更在于开源社区围绕PyTorch所产生的一系列工具包(一般是Python package)和程序,这些优秀的工具包极大地方便了PyTorch在特定领域的使 ...
- pytorch tensor_[PyTorch 学习笔记] 1.2 Tensor(张量)介绍
本章代码: https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/tensor_introduce1.py https: ...
- PyTorch学习记录-1PyTorch安装
学习建议里有PyTorch,所以我就开始了PyTorch的学习. 首先就是安装啦,去官网很清楚,可以选择自己的版本和平台,然后下面就会出现 Run this command: 后面跟着的命令复制运行 ...
- Pytorch学习记录(七):自定义模型 Auto-Encoders 使用numpy实现BP神经网络
文章目录 1. 自定义模型 1.1 自定义数据集加载 1.2 自定义数据集数据预处理 1.3 图像数据存储结构 1.4 模型构建 1.5 训练模型 2. Auto-Encoders 2.1 无监督学习 ...
- [Pytorch] 学习记录(七)MNIST多分类问题
在处理多分类问题的时候会用到一个叫做softmax的分类器,是用来将输出结果划归到[0,1]的,本讲将主要从softmax分类器入手来实现多分类问题.在前一章我们对糖尿病模型进行了二分类,二分类问题中 ...
最新文章
- Win64 驱动内核编程-17. MINIFILTER(文件保护)
- adb 命令 pc端 复制粘贴 文本到android设备
- 【Python学习】 - TensorFlow.keras 不显示epochs进度条的方法
- 星益云聚合收银台系统
- Java .net 心得_我做英文站的心得-如何做好英文站 - 程序员日记 - 做人做技术【关注.NET和JAVA】...
- 如何分辨高仿和原装VGA线(图文教程)_对比赛打分进行现场硬件连线产品参考_[评委计分系统-双屏版]使用参考
- ora01017 linux,ORA-01017: invalid username/password; logon denied 解决办法
- 电子签章引入jar包
- 极通EWEBS远程接入软件
- iOS应用审核 - Phased Release for Automatic Updates (阶段性自动更新发布)
- android获取wifi的SSID
- python入门随机生成验证码并验证是否正确
- 福特汉姆计算机专业,福特汉姆大学计算机
- 准备离职第1天:java集合复习整理
- 《实践论》笔记及当下反思(一)
- 免费全平台直播推流软件OBS Studio应用
- RISC-V指令系统
- 嵌入式块设备内核驱动
- 在css中引用特殊字体
- java修图sdk_脑洞大开!Adobe等新研究把「自拍」变「他拍」,魔幻修图效果感人...
热门文章
- jmail反馈是否发送成功_如何在钉钉上自动发送定制消息或通知给同事?(10行代码搞定)...
- 【c语言】蓝桥杯基础练习 回文数
- c语言表达逻辑量的方法,c语言中用什么表示逻辑量为真
- python银行开户_Python数据挖掘与Stata应用实证寒假工作坊
- Anaconda 2019.03 发布,Python 跨平台科学计算软件
- AOSuite V2.7 发布,JavaEE快速开发平台
- 解决 Windows instance 时间不同步问题 - 每天5分钟玩转 OpenStack(153)
- 什么时候会执行viewDidLoad方法
- javascript间接实现前端非获取匹配,保留带某前缀的子串不执行替换
- 史上最伟大的五位计算机罪犯