mindspore.ops.ExtractGlimpse

class mindspore.ops.ExtractGlimpse(centered=True, normalized=True, uniform_noise=True, noise='uniform')[源代码]

从输入图像Tensor中提取glimpse,并返回一个窗口。

说明

如果窗口和输入图像Tensor没有重叠,用随机噪声进行填充。

参数:
  • centered (bool,可选) - 可选的bool,指示偏移坐标是否相对于图像居中,如果为True,表示 (0,0)偏移是相对于输入图像的中心的;如果为False,则(0,0)偏移量对应于输入图像的左上角。默认为True。

  • normalized (bool,可选) - 可选的bool,指示偏移坐标是否归一化。默认为True。

  • uniform_noise (bool,可选) - 可选的bool,指示是否应该使用均匀分布或高斯分布生成噪声。默认为True。

  • noise (str,可选) - 可选string,其值可以为: uniformgaussianzero 。 窗口由输入大小和偏移决定,如果窗口与输入部分没有重叠,则填充随机噪声。当 noiseuniform 或者 gaussian , 其填充结果是变量。当 noisezero ,则 uniform_noise 必须为False,这样填充的噪声才是0,保证了结果的正确。 当 uniform_noise 为True, noise 仅可以为 uniform 。当 uniform_noise 为False, noise 可以为 uniformgaussianzero 。 默认为 uniform

输入:
  • x (Tensor) - 一个 4-D 的Tensor,shape为 [batch_size, height, width, channels] ,dtype为float32。

  • size (Tensor) - 一个包含2个元素的 1-D Tensor,包含了提取glimpses的大小。 glimpse 的高度必须首先指定,然后是其宽度,数据类型为int32,其大小必须大于0。

  • offsets (Tensor) - 一个 2-D 的Tensor,shape为[batch_size, 2],包含了每个窗口中心点的y、x位置,数据类型为float32。

输出:

一个 4-D 的Tensor,shape为 [batch_size, glimpse_height, glimpse_width, channels] ,数据类型为float32。

异常:
  • TypeError - 如果 centered 不是一个bool。

  • TypeError - 如果 normalize 不是一个bool。

  • TypeError - 如果 uniform_noise 不是一个bool。

  • ValueError - 如果 noise 不是 uniformgaussian 或者 zero

  • ValueError - 如果 size 的值不是常数。

  • ValueError - 如果输入 xoffsets 的batch_size不一致。

  • ValueError - 如果 offsets[1] 不是2。

  • ValueError - 如果输入 x 不是一个Tensor。

支持平台:

GPU CPU

样例:

>>> x = Tensor([[[[0.0], [1.0], [2.0]], [[3.0], [4.0], [5.0]], [[6.0], [7.0], [8.0]]]], dtype=mindspore.float32)
>>> size = Tensor((2, 2), dtype=mindspore.int32)
>>> offsets = Tensor([[1, 1]], dtype=mindspore.float32)
>>> ops = P.image_ops.ExtractGlimpse(centered = False, normalized = False,
>>>                                  uniform_noise = False, noise = "uniform")
>>> output = ops(x, size, offsets)
>>> print(output)
[[[[0.]
   [1.]]
  [[3.]
   [4.]]]]