基于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 自动安装 Rising 杀毒软件
Apr 24 Python
python 文件和路径操作函数小结
Nov 23 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
django缓存配置的几种方法详解
Jul 16 Python
python实现电子词典
Mar 03 Python
python画图常规设置方式
Mar 05 Python
.img/.hdr格式转.nii格式的操作
Jul 01 Python
python3爬虫中异步协程的用法
Jul 10 Python
python爬取豆瓣电影TOP250数据
May 23 Python
只用20行Python代码实现屏幕录制功能
Jun 02 Python
Python读取和写入Excel数据
Apr 20 Python
Python使用Web框架Flask开发项目
Jun 01 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对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
php实现的农历算法实例
2015/08/11 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
python清除函数占用的内存方法
2018/06/25 Python
django自带调试服务器的使用详解
2019/08/29 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
10个示例带你掌握python中的元组
2020/11/23 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
愚人节活动策划方案
2014/03/11 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
学校师德师风整改方案
2014/10/28 职场文书
2014年工商所工作总结
2014/12/09 职场文书
资料员岗位职责范本
2015/04/13 职场文书
师范生见习自我总结
2015/06/23 职场文书