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代码(逐级优化)
May 25 Python
Python程序员鲜为人知但你应该知道的17个问题
Jun 04 Python
tensorflow学习教程之文本分类详析
Aug 07 Python
Python计算两个矩形重合面积代码实例
Sep 16 Python
基于Python实现扑克牌面试题
Dec 11 Python
Tensorflow实现在训练好的模型上进行测试
Jan 20 Python
Python OrderedDict字典排序方法详解
May 21 Python
如何解决pycharm调试报错的问题
Aug 06 Python
Python3+Flask安装使用教程详解
Feb 16 Python
解决python存数据库速度太慢的问题
Apr 23 Python
python自动化之如何利用allure生成测试报告
May 02 Python
python中tkinter复选框使用操作
Nov 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制作静态网站的模板框架(三)
2006/10/09 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
php数组指针操作详解
2017/02/14 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
php创建类并调用的实例方法
2019/09/25 PHP
繁简字转换功能
2006/07/19 Javascript
JS 判断undefined的实现代码
2009/11/26 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
2016/06/06 Javascript
JAVA中截取字符串substring用法详解
2017/04/14 Javascript
koa-router源码学习小结
2018/09/07 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
layui表格数据重载
2019/07/27 Javascript
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
python实现决策树分类
2018/08/30 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
毕业自荐书
2013/12/09 职场文书
社区优秀志愿者先进事迹
2014/05/09 职场文书
合伙购房协议样本
2014/10/06 职场文书
贷款担保书
2015/01/20 职场文书
学生逃课检讨书
2015/02/17 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
Python实现聚类K-means算法详解
2022/07/15 Python