Pytorch maxpool的ceil_mode用法

 更新时间:2020年02月18日 10:40:37   作者:GZHermit  
今天小编就为大家分享一篇Pytorch maxpool的ceil_mode用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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 3.0 模拟用户登录功能并实现三次错误锁定

    python 3.0 模拟用户登录功能并实现三次错误锁定

    Python的3.0版本,常被称为Python 3000,或简称Py3k。这篇文章主要介绍了python 3.0 模拟用户登录功能并实现三次错误锁定,需要的朋友可以参考下
    2017-11-11
  • 浅谈Python中的继承

    浅谈Python中的继承

    这篇文章主要介绍了Python中继承的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • Pandas中迭代DataFrame行的方法总结

    Pandas中迭代DataFrame行的方法总结

    Python是进行数据分析的一种很好的语言,主要是因为以数据为中心的Python包的奇妙生态系统,本文主要为大家介绍了如何在Pandas中迭代DataFrame中的行,有需要的可以参考下
    2023-09-09
  • Python快速查找list中相同部分的方法

    Python快速查找list中相同部分的方法

    今天小编就为大家分享一篇Python快速查找list中相同部分的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python OpenCV 图像矫正的原理实现

    Python OpenCV 图像矫正的原理实现

    这篇文章主要介绍了Python OpenCV 图像矫正的原理实现,检测边缘点;以边缘点作为输入,采用Hough直线检测,检测出最多点共线的四条直线,更多相关内容需要的朋友可以参考一下
    2022-07-07
  • python中关于对super()函数疑问解惑

    python中关于对super()函数疑问解惑

    Python中的super()是用于调用父类(或父类的父类...)方法的函数,主要用于多继承,单继承问题不大,下面这篇文章主要给大家介绍了关于python中关于对super()函数疑问解惑的相关资料,需要的朋友可以参考下
    2022-08-08
  • python实现图片批量剪切示例

    python实现图片批量剪切示例

    这篇文章主要介绍了python实现图片批量剪切示例,需要的朋友可以参考下
    2014-03-03
  • python使用 HTMLTestRunner.py生成测试报告

    python使用 HTMLTestRunner.py生成测试报告

    这篇文章主要介绍了python使用 HTMLTestRunner.py生成测试报告 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Python反爬实战掌握酷狗音乐排行榜加密规则

    Python反爬实战掌握酷狗音乐排行榜加密规则

    最新的酷狗音乐反爬来袭,本文介绍如何利用Python掌握酷狗排行榜加密规则,本章内容只限学习,切勿用作其他用途!!!!! 有需要的朋友可以借鉴参考下
    2021-10-10
  • Python中lazy property的两种方法小结

    Python中lazy property的两种方法小结

    本文介绍了Python中实现延迟属性lazyproperty的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01

最新评论