基于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的汉字转GBK码实现代码
Feb 19 Python
Python实现的简单文件传输服务器和客户端
Apr 08 Python
python抓取百度首页的方法
May 19 Python
python获取外网IP并发邮件的实现方法
Oct 01 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
python 获取list特定元素下标的实例讲解
Apr 09 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
如何基于Django实现上下文章跳转
Sep 16 Python
python ssh 执行shell命令的示例
Sep 29 Python
Python爬虫抓取论坛关键字过程解析
Oct 19 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 Python
python上下文管理的使用场景实例讲解
Mar 03 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
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
JavaScript库 开发规则
2009/01/31 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
详解python做UI界面的方法
2019/02/27 Python
安装python及pycharm的教程图解
2019/10/10 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
小学语文教研活动总结
2014/07/01 职场文书
新闻人物通讯稿
2014/10/09 职场文书
高中历史教学反思
2016/02/19 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书