mindspore.ops.UpsampleTrilinear3D

class mindspore.ops.UpsampleTrilinear3D(output_size=None, scales=None, align_corners=False)[源代码]

输入为五维度Tensor,跨其中三维执行三线性插值上调采样。

此运算符使用指定的 output_sizescales 缩放因子放大输入体积,过程使用三线性上调算法。

说明

必须指定 output_sizescales 中的一个值,并且不能同时指定两者。

参数:
  • output_size (Union[tuple[int], list[int]],可选) - 包含3个int的元组或列表。元素分别为 \((output\_depth, output\_height, output\_width)\) 。只能指定 output_sizescales 中的一个值。默认值:None。

  • scales (Union[tuple[float], list[float]],可选) - 包含3个float的元组或列表。元素分别为 \((scale\_depth, scale\_height, scale\_width)\) 。 默认值:None。

  • align_corners (bool,可选) - 如果为True,则输入和输出Tensor由其角像素的中心点对齐,保留角像素处的值。如果为False,则输入和输出Tensor由其角像素的角点对齐,插值对边界外值使用边值填充。默认值:False。

输入:
  • x (Tensor) - Shape为 \((N, C, D_{in}, H_{in}, W_{in})\) 的五维Tensor。支持的数据类型:[float16, float32, float64]。

输出:
  • y (Tensor) - 上采样输出。其shape \((N, C, D_{out}, H_{out}, W_{out})\) ,数据类型与 x 相同。

异常:
  • TypeError - 当 output_size 不是None并且 output_size 不是list[int]或tuple[int]。

  • TypeError - 当 scales 不是None并且 scales 不是list[float]或tuple[float]。

  • TypeError - x 的数据类型不是float16也、float32或float64。

  • TypeError - align_corners 的数据类型不是bool。

  • ValueError - output_size 不为空时含有非正数值。

  • ValueError - scales 不为空时含有非正数值。

  • ValueError - x 维度不为5。

  • ValueError - scalesoutput_size 同时被指定或都不被指定。

  • ValueError - scales 被指定时其含有的元素个数不为3。

  • ValueError - output_size 被指定时其含有的元素个数不为3。

支持平台:

GPU CPU

样例:

>>> ops = ops.UpsampleTrilinear3D(output_size=[4, 64, 48])
>>> out = ops(Tensor(input_data=np.random.randn(2, 3, 4, 512, 256)))
>>> print(out.shape)
(2, 3, 4, 64, 48)
...
>>> ops = ops.UpsampleTrilinear3D(output_size=[2, 4, 4])
>>> in_x = Tensor(np.arange(1, 5, dtype=np.float32).reshape((1, 1, 1, 2, 2)))
>>> out = ops(in_x)
>>> print(out)
[[[[[1.   1.25 1.75 2.  ]
    [1.5  1.75 2.25 2.5 ]
    [2.5  2.75 3.25 3.5 ]
    [3.   3.25 3.75 4.  ]]
   [[1.   1.25 1.75 2.  ]
    [1.5  1.75 2.25 2.5 ]
    [2.5  2.75 3.25 3.5 ]
    [3.   3.25 3.75 4.  ]]]]]