• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1mindspore.ops.FractionalAvgPool
2===============================
3
4.. py:class:: mindspore.ops.FractionalAvgPool(pooling_ratio, pseudo_random=False, overlapping=False, deterministic=False, seed=0, seed2=0)
5
6    在输入上执行分数平均池化。
7
8    分数平均池化类似于常规平均池化。在常规平均池化中,通过取集合较小的 `N x N` 子部分的平均值(通常为2x2)来缩小输入集的大小,目标是将集合缩小 `N` 倍,其中 `N` 为整数。
9    但分数平均池化具有额外的灵活性,允许总缩小比率 `N` 为非整数值。
10
11    .. warning::
12        `pooling_ratio` 当前只支持行和列轴,并行大于1.0,第一个和最后一个元素必须为1.0,因为我们不允许对batch和通道轴进行池化。
13
14    参数:
15        - **pooling_ratio** (list(float)) - 决定了输出的shape,是一个元素值为float的列表,长度大于等于4。其值为每个维度的池化比率,目前仅支持行和列维度,
16          应该大于等于0。第一个和最后一个元素必须为1.0,不支持对batch和通道轴进行池化。
17        - **pseudo_random** (bool,可选) - 控制序列生成机制是随机或伪随机。当设置为True时,以伪随机方式生成池序列,为False时,以随机方式生成池序列。默认值: ``False`` 。
18          参考 Benjamin Graham 的论文 `Fractional Max-Pooling <https://arxiv.org/pdf/1412.6071>`_ 以了解伪随机和随机池化之间的差异。
19        - **overlapping** (bool,可选) - 当设置为 ``True`` 时,表示两个单元格都使用相邻池化单元边界的值进行池化,
20          设置为False时,表示值不进行重复使用。默认值: ``False`` 。
21        - **deterministic** (bool,可选) - 当设置为 ``True`` 时,将在计算图中的FractionalAvgPool节点上进行迭代时使用固定池区域。
22          主要用于单元测试,使FractionalAvgPool具有确定性。当设置为 ``False`` 时,将不使用固定池区域。默认值: ``False`` 。
23        - **seed** (int,可选) - 如果seed或seed2被设置为非零,则随机数生成器由给定的seed生成,否则,它由随机种子生成。默认值: ``0`` 。
24        - **seed2** (int,可选) - 第二个seed,以避免发生seed碰撞。默认值: ``0`` 。
25
26    输入:
27        - **x** (Tensor) - 数据类型必须为:float32、float64、int32、int64。shape为 :math:`(N, H_{in}, W_{in}, C_{in})` 。
28
29    输出:
30        - **y** (Tensor) - 一个Tensor,FractionalAvgPool的输出,与 `x` 具有相同的数据类型,shape为 :math:`(N, H_{out}, W_{out}, C_{out})` 。
31        - **row_pooling_sequence** (Tensor) - 一个Tensor,池边界行的结果列表,数据类型为int64。
32        - **col_pooling_sequence** (Tensor) - 一个Tensor,池边界列的结果列表,数据类型为int64。
33
34    异常:
35        - **TypeError** - 如果 `x` 数据类型不是:float32、float64、int32或者int64。
36        - **TypeError** - 如果 `x` 不是一个4D的Tensor。
37        - **ValueError** - 如果 `x` 的元素等于0或者小于0。
38        - **ValueError** - 如果 `pooling_ratio` 是一个列表,其长度不等于4。
39        - **ValueError** - 如果 `pooling_ratio` 的第一个和最后一个值不等于1.0。
40