基于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自定义进程池实例分析【生产者、消费者模型问题】
Sep 19 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
python实现ID3决策树算法
Dec 20 Python
Python实现随机生成手机号及正则验证手机号的方法
Apr 25 Python
Django 跨域请求处理的示例代码
May 02 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
python导入坐标点的具体操作
May 10 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
Python内置加密模块用法解析
Nov 25 Python
Python项目跨域问题解决方案
Jun 22 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
Python的这些库,你知道多少?
Jun 09 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
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
js实现录音上传功能
2019/11/22 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
python实现静态服务器
2019/09/05 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
自荐信的两点禁忌
2013/10/30 职场文书
实习生自我鉴定
2013/12/12 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
小学一年级评语大全
2014/04/22 职场文书
村级四风对照检查材料
2014/08/24 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
清洁工岗位职责
2015/02/13 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电