Pytorch maxpool的ceil_mode用法
作者:GZHermit 发布时间:2023-03-20 13:28:05
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的边给舍弃了。
来源:https://blog.csdn.net/GZHermit/article/details/79351803


猜你喜欢
- 如下所示:<?phpnamespace helpers;class OpensslRSA{ //echo $private_key 私
- 本文实例讲述了Python打包文件夹的方法。分享给大家供大家参考,具体如下:一、zipimport os, zipfile#打包目录为zip
- PyQt5安装在cmd下输入pip install PyQt5完成PyQt5安装,再安装qt designer,可以使用pip安装pip i
- 一、遍历函数(map)map函数用于遍历序列,对序列中每个元素进行操作,最终获取新的序列。lis=[2,3,4,5]new_list=map
- 1。onabort(ns3,ns4,ie4):当用户终止正在打开的网页时产生该事件。2。onblur(ns3,ns4,ie3,ie4):某元
- 如何在庞大的数据中高效的检索自己需要的东西?本篇内容介绍了Python做出一个大数据搜索引擎的原理和方法,以及中间进行数据分析的原理也给大家
- 一.入参解析库 argparse有时候写Python脚本,需要处理入参[-h][-v][-F]...等情况,如果自己来解析的话,会花费很多时
- 本文为大家分享了Python实现全排列的打印的代码,供大家参考,具体如下问题:输入一个数字:3,打印它的全排列组合:123 132 213
- python 字典操作提取key,value dictionaryName[key] = value1.为字典增加一项 2.访问字典中的值
- 当数据文件过大时,由于计算机内存有限,需要对大文件进行分块读取:import pandas as pdf = open('E:/学习
- MySQLWorkbench是 MySQL AB 最近释放的可视数据库设计工具。这个工具是设计 MySQL数据库的专用工具。下载地址:htt
- 业务需求我们需要一个微信小程序码,但是是需要提供给别人扫码的但是只有一个纯粹的小程序码是不好看的,所以需要推广的海报图片。再结合文字最终效果
- 字符型图片验证码识别完整过程及Python实现的博主,我的大部分知识点都是从他那里学来的。想要识别验证码,收集足够多的样本后,首先要做的就是
- 本文实例讲述了js实现简单的联动菜单效果。分享给大家供大家参考。具体如下:这是一个最简单的js联动菜单代码,在DW里可以自动生成,不想在DW
- 本文实例为大家分享了python实现电子词典的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*-#youdan
- 作者:HelloGitHub-追梦人物文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库当博客上发布的文章越来越多时
- 今天在开发一个手机短信通讯录的前端界面时,界面中使用了checkbox,来做为各项的选择控件,但是操作时,除了点差子。由于逻辑需要,需要预先
- 由于GIL(Global Interpreter Lock)的存在使得在同一时刻Python进程只能使用CPU的一个核心,也就是对应操作系统
- 简洁优雅的 C 写法:int a = 1; int b = 2; int temp; temp = a;&nb
- 本文实例讲述了Python实现从订阅源下载图片的方法。分享给大家供大家参考。具体如下:这段代码是基于python 3.4实现的,和pytho