基于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使用win32com库播放mp3文件的方法
May 30 Python
使用Python来编写HTTP服务器的超级指南
Feb 18 Python
python实现逻辑回归的方法示例
May 02 Python
PyQt5每天必学之日历控件QCalendarWidget
Apr 19 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
Apr 19 Python
Python2包含中文报错的解决方法
Jul 09 Python
Python框架Flask的基本数据库操作方法分析
Jul 13 Python
使用pytorch进行图像的顺序读取方法
Jul 27 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 Python
python垃圾回收机制原理分析
Apr 13 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 daodb插入、更新与删除数据
2009/03/19 PHP
PHP删除非空目录的函数代码小结
2013/02/28 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
PHP/HTML混写的四种方式总结
2017/02/27 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
对于Python中RawString的理解介绍
2016/07/07 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
python循环定时中断执行某一段程序的实例
2019/06/29 Python
在python里面运用多继承方法详解
2019/07/01 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
市场部经理岗位职责
2014/04/10 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
欢迎词怎么写
2015/01/23 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
环保建议书范文
2015/09/14 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
靠谱的活动总结
2019/04/16 职场文书
python编写函数注意事项总结
2021/03/29 Python
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL
python如何查找列表中元素的位置
2022/05/30 Python