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实现的一个找零钱的小程序代码分享
Aug 25 Python
Python的迭代器和生成器使用实例
Jan 14 Python
Python的Django框架中if标签的相关使用
Jul 15 Python
python安装mysql-python简明笔记(ubuntu环境)
Jun 25 Python
Python学习思维导图(必看篇)
Jun 26 Python
python读取各种文件数据方法解析
Dec 29 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
May 23 Python
Django用户认证系统 User对象解析
Aug 02 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
python实现学生管理系统开发
Jul 24 Python
Python timeit模块原理及使用方法
Oct 10 Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 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_Flame(Version:Progress)的原代码
2006/10/09 PHP
php中iconv函数使用方法
2008/05/24 PHP
使用PHP实现密保卡功能实现代码<打包下载直接运行>
2011/10/09 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
Python性能优化的20条建议
2014/10/25 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
Django rest framework实现分页的示例
2018/05/24 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
pyqt5中动画的使用详解
2020/04/01 Python
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
人事部主管岗位职责
2013/12/26 职场文书
玩具公司的创业计划书
2013/12/31 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
环保建议书400字
2014/05/14 职场文书
学习教师法的心得体会
2014/09/03 职场文书
停车场管理协议书范本
2014/10/08 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
2019财务毕业实习报告
2019/06/27 职场文书