mindspore.nn.ResizeBilinear

class mindspore.nn.ResizeBilinear(half_pixel_centers=False)[源代码]

使用双线性插值调整输入Tensor为指定的大小。

参数:

  • half_pixel_centers (bool) - 是否几何中心对齐。如果设置为True, 那么 align_corners 应该设置为False。默认值:False。

输入:

  • x (Tensor) - ResizeBilinear的输入,四维的Tensor,其shape为 \((batch, channels, height, width)\) ,数据类型为float16或float32。

  • size (Union[tuple[int], list[int], None]) - 指定新Tensor的shape大小,其shape为 \((new\_height, new\_width)\) 的tuple或者list。只有size或scale_factor能设置为None。默认值:None。

  • scale_factor (int, None) - 新Tensor大小的缩放因子,其值为正整数。 sizescale_factor 有且只有一个能设置为None。默认值:None。

  • align_corners (bool) - 如果为True,将使用 \((new\_height - 1) / (height - 1)\) 来调整输入,这将精确对齐图像的4个角以及调整图像尺寸。如果为False,将使用 \(new\_height / height\) 来调整。默认值:False。

输出:

调整后的Tensor。

如果设置了size,则结果为 \((batch, channels, new\_height, new\_width)\) 的四维Tensor,其数据类型与 x 相同。如果设置了scale,则结果为 \((batch, channels, scale\_factor * height, scale\_factor * width)\) 的四维Tensor,其数据类型与 x 相同。

异常:

  • TypeError - size 不是tuple、list或None。

  • TypeError - scale_factor 既不是int也不是None。

  • TypeError - align_corners 不是bool。

  • TypeError - half_pixel_centers 不是bool。

  • TypeError - align_cornershalf_pixel_centers 都为True。

  • TypeError - half_pixel_centers 为True,且device_target不为Ascend。

  • TypeError - x 的数据类型既不是float16也不是float32。

  • ValueError - sizescale_factor 都为None或都不为None。

  • ValueError - x 的shape长度不等于4。

  • ValueError - scale_factor 是小于0的int。

  • ValueError - size 是长度不等于2的list或tuple。

支持平台:

Ascend CPU GPU

样例:

>>> x = Tensor([[[[1, 2, 3, 4], [5, 6, 7, 8]]]], mindspore.float32)
>>> resize_bilinear = nn.ResizeBilinear()
>>> result = resize_bilinear(x, size=(5,5))
>>> print(x)
[[[[1. 2. 3. 4.]
   [5. 6. 7. 8.]]]]
>>> print(result)
[[[[1.        1.8       2.6       3.4       4.       ]
   [2.6       3.4       4.2000003 5.        5.6000004]
   [4.2       5.0000005 5.8       6.6       7.2      ]
   [5.        5.8       6.6       7.4       8.       ]
   [5.        5.8       6.6       7.4000006 8.       ]]]]
>>> print(result.shape)
(1, 1, 5, 5)