Pytorch maxpool的ceil_mode用法


Posted in Python onFebruary 18, 2020

pytorch里面的maxpool,有一个属性叫ceil_mode,这个属性在api里面的解释是

ceil_mode: when True, will use ceil instead of floor to compute the output shape

也就是说,在计算输出的shape的时候,如果ceil_mode的值为True,那么则用天花板模式,否则用地板模式

???

举两个例子就明白了。

# coding:utf-8
import torch
import torch.nn as nn
from torch.autograd import Variable
 
 
class Net(nn.Module):
  def __init__(self):
    super(Net, self).__init__()
    self.maxp = nn.MaxPool2d(kernel_size=2, ceil_mode=False)
 
  def forward(self, x):
    x = self.maxp(x)
    return x
 
square_size = 6
inputs = torch.randn(1, 1, square_size, square_size)
for i in range(square_size):
  inputs[0][0][i] = i * torch.ones(square_size)
inputs = Variable(inputs)
print(inputs)
 
net = Net()
outputs = net(inputs)
print(outputs.size())
print(outputs)

在上面的代码中,无论ceil_mode是True or False,结果都是一样

但是如果设置square_size=5,那么

当ceil_mode=True

Variable containing:

(0 ,0 ,.,.) =

0 0 0 0 0 0

1 1 1 1 1 1

2 2 2 2 2 2

3 3 3 3 3 3

4 4 4 4 4 4

5 5 5 5 5 5

[torch.FloatTensor of size 1x1x6x6]

torch.Size([1, 1, 3, 3])

Variable containing:

(0 ,0 ,.,.) =

1 1 1

3 3 3

5 5 5

[torch.FloatTensor of size 1x1x3x3]

在上面的代码中,无论ceil_mode是True or False,结果都是一样

但是如果设置square_size=5,那么

当ceil_mode=True

Variable containing:

(0 ,0 ,.,.) =

0 0 0 0 0

1 1 1 1 1

2 2 2 2 2

3 3 3 3 3

4 4 4 4 4

[torch.FloatTensor of size 1x1x5x5]
torch.Size([1, 1, 3, 3])
Variable containing:

(0 ,0 ,.,.) =

1 1 1

3 3 3

4 4 4

[torch.FloatTensor of size 1x1x3x3]

当ceil_mode=False

Variable containing:

(0 ,0 ,.,.) =

0 0 0 0 0

1 1 1 1 1

2 2 2 2 2

3 3 3 3 3

4 4 4 4 4

[torch.FloatTensor of size 1x1x5x5]

torch.Size([1, 1, 2, 2])

Variable containing:

(0 ,0 ,.,.) =

1 1

3 3

[torch.FloatTensor of size 1x1x2x2]

所以ceil模式就是会把不足square_size的边给保留下来,单独另算,或者也可以理解为在原来的数据上补充了值为-NAN的边。floor模式则是直接把不足square_size的边给舍弃了。

以上这篇Pytorch maxpool的ceil_mode用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 除法小技巧
Sep 06 Python
python 提取文件的小程序
Jul 29 Python
python中sleep函数用法实例分析
Apr 29 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
Nov 09 Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 Python
Python使用pandas处理CSV文件的实例讲解
Jun 22 Python
python将txt文件读取为字典的示例
Dec 22 Python
使用python绘制二维图形示例
Nov 22 Python
python打开文件的方式有哪些
Jun 29 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 Python
详解selenium + chromedriver 被反爬的解决方法
Oct 28 Python
Python 文字识别
May 11 Python
浅谈pytorch池化maxpool2D注意事项
Feb 18 #Python
Python3的socket使用方法详解
Feb 18 #Python
Python批量启动多线程代码实例
Feb 18 #Python
基于pytorch padding=SAME的解决方式
Feb 18 #Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 #Python
Python chardet库识别编码原理解析
Feb 18 #Python
解决pytorch-yolov3 train 报错的问题
Feb 18 #Python
You might like
关于PHP中的Class的几点个人看法
2006/10/09 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
JavaScript 模块化编程(笔记)
2015/04/08 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
JS实现鼠标滑过显示边框的菜单效果
2016/09/21 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
采用怎样的方法保证数据的完整性
2013/12/02 面试题
Java编程面试题
2016/04/04 面试题
高中生旷课检讨书
2014/10/08 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
兴趣班停课通知
2015/04/24 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
博物馆观后感
2015/06/05 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书