基于pytorch padding=SAME的解决方式


Posted in Python onFebruary 18, 2020

tensorflow中的conv2有padding=‘SAME'这个参数。吴恩达讲课中说到当padding=(f-1)/2(f为卷积核大小)时则是SAME策略。但是这个没有考虑到空洞卷积的情况,也没有考虑到strides的情况。

查阅资料后发现网上方法比较麻烦。

手算,实验了一个早上,终于初步解决了问题。

分为两步:

填充多少

中文文档中有计算公式:

输入:

基于pytorch padding=SAME的解决方式

输出:

基于pytorch padding=SAME的解决方式

因为卷积后图片大小同卷积前,所以这里W_out=W_in, H_out=H_in。解一元一次方程即可。结果取ceil。

怎么填充

torch是先填充再卷积。conv2d的策略如此。所以我先在forward中获取上述方程需要的参数。然后使用torch.nn.functional.pad填充就好了。

然后

t2=torch.randn([1,1,4,4])
print(t2.size())
m1 = torch.nn.Conv2d(1, 1, 1, padding=(1,0))
print(m1(t2).size())
t2=F.pad(t2,(0,0,1,1))
print(t2.size())

有两个发现

pad是对称的两边都填充的,所以上述总共填充2行/列

参数中padding=(1,0)的效果,与F.pad(t2, (0,0,1,1)的效果一样。而不是与F.pad(t2,1,1,0,0)效果一样。很神奇。本来(1,0)按照解视是1是H边(左右)。0是W边(上下)。(0,0,1,1)按解释是左右不填充,上下填充。结果刚好相反。

这样应该就没什么问题了。

之后还需要看反卷积跟池化的pooling='SAME'是怎么实现的。

以上这篇基于pytorch padding=SAME的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
Aug 15 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
python获得两个数组交集、并集、差集的方法
Mar 27 Python
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
python写程序统计词频的方法
Jul 29 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
基于python模拟TCP3次握手连接及发送数据
Nov 06 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 #Python
Python chardet库识别编码原理解析
Feb 18 #Python
解决pytorch-yolov3 train 报错的问题
Feb 18 #Python
利用PyQt中的QThread类实现多线程
Feb 18 #Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 #Python
Python识别html主要文本框过程解析
Feb 18 #Python
pytorch实现seq2seq时对loss进行mask的方式
Feb 18 #Python
You might like
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
PHP里的单例类写法实例
2015/06/25 PHP
Symfony生成二维码的方法
2016/02/04 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
React key值的作用和使用详解
2018/08/23 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
跟老齐学Python之折腾一下目录
2014/10/24 Python
深入Python函数编程的一些特性
2015/04/13 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
前端实现打印图像功能
2019/08/27 HTML / CSS
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
应届毕业生应聘自荐信
2013/12/07 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
学生生病请假条范文
2014/02/16 职场文书
尼克胡哲观后感
2015/06/08 职场文书
竞选稿之小学班干部
2019/10/31 职场文书