Pytorch中 maxpool的ceil_mode
原文:https://blog.csdn.net/GZHermit/article/details/79351803
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 Variableclass 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 xsquare_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)
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相关推荐
- PyTorch中MaxPool的ceil_mode属性
PyTorch中的MaxPool(最大池化)有一个属性:ceil_mode,默认为False(地板模式),为True时是天花板模式. 转载于:https://www.cnblogs.com/xxxxx ...
- PyTorch中池化层的padding和ceil_mode参数设置
在池化操作的接口中,padding和ceil_mode这两个参数会影响到输出特征图的大小.padding即对特征图大小进行扩充的像素数量:ceil_mode指明,当剩余的像素不足滤波器大小,是否仍对这 ...
- Lesson 16.5 在Pytorch中实现卷积网络(上):卷积核、输入通道与特征图在PyTorch中实现卷积网络(中):步长与填充
卷积神经网络是使用卷积层的一组神经网络.在一个成熟的CNN中,往往会涉及到卷积层.池化层.线性层(全连接层)以及各类激活函数.因此,在构筑卷积网络时,需从整体全部层的需求来进行考虑. 1 二维卷积层n ...
- pytorch中的pre-train函数模型引用及修改(增减网络层,修改某层参数等)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/whut_ldz/article/det ...
- PyTorch中FLOPs计算问题
最近看了很多关于FLOPs计算的实现方法,也自己尝试了一些方法,发现最好用的还是PyTorch中的thop库(代码如下): device = torch.device("cuda" ...
- Pytorch中的Conv1d()和Conv2d()函数
文章目录 一.Pytorch中的Conv1d()函数 二.Pytorch中的Conv2d()函数 三.Pytorch中的MaxPool1d()函数 四.pytorch中的MaxPool2d()函数 参 ...
- Pytorch中CNN图像回归问题预测值都一样
** Pytorch中CNN图像回归问题预测值都一样 ** 上网也查阅了许多资料,然后对比各种方法都试了一遍,归结为以下几点: 1.出现预测值都一样的情况,一般都是在某一层梯度消失了,然后导致输入到下 ...
- pytorch中调整学习率的lr_scheduler机制
pytorch中调整学习率的lr_scheduler机制 </h1><div class="clear"></div><div class ...
- pytorch中如何处理RNN输入变长序列padding
一.为什么RNN需要处理变长输入 假设我们有情感分析的例子,对每句话进行一个感情级别的分类,主体流程大概是下图所示: 思路比较简单,但是当我们进行batch个训练数据一起计算的时候,我们会遇到多个训练 ...
最新文章
- VMware HA环境搭建七:WIN2012 ISCSI目标服务器的安装
- 【python】self cls
- vue项目运行启动方法(从github上下载了一个前端项目进行运行)
- LightOJ 1401 No More Tic-tac-toe 博弈论SG打表
- AWS vs K8s 是新的 Windows vs Linux
- SQL SERVER数据库备份时出现“操作系统错误5(拒绝访问)。BACKUP DATABASE 正在异常终止。”错误的解决办法...
- data spring 指定时区_听说过spring-data-jdbc么?来个最佳实践
- linux 使用 ioctl 参数
- vscode 插件之 htmltagwrap的修改
- excel多列数据生成图分类有间隔
- Docker contanier comunication with route
- 极佳mysql数据库碎片恢复工具,极佳SQL数据库日志恢复工具
- 【原型设计】第一节:Axure RP9 下载安装、汉化和激活使用的方法教程
- The xor-longest Path poj3764
- Anaconda虚拟环境管理(命令行)
- Windows安装ElasticSearch 7.3.0
- 红巨人特效插件套装effects suite mac版
- 《带着神兽自学少儿编程》之01:爸爸下载Scratch【关注可畅读】
- 四川师范大学自然地理(1-地球)90分以上版本
- html5有哪些小特效,超级惊艳 10款HTML5动画特效推荐