mindspore.ops.ExtractVolumePatches

class mindspore.ops.ExtractVolumePatches(kernel_size, strides, padding)[源代码]

从输入中提取数据,并将它放入”depth”输出维度中,”depth”为输出的第二维。

参数:
  • kernel_size (Union[int, tuple[int], list[int]]) - 长度为3或5的int列表。输入每个维度表示滑动窗口大小。必须是: [1,1,kd,kh,kw][kd,kh,kw] 。如果 kd=kh=kw ,则可以输入整数。

  • strides (Union[int, tuple[int], list[int]]) - 长度为3或5的int列表。 两个连续色块的中心在输入中的距离。必须是: [1,1,sd,sh,sw][sd,sh,sw] 。如果 sd=sh=sw ,则可以输入整数。

  • padding (str) - 要使用的填充算法的类型。可选值有”SAME”和”VALID”。

输入:
  • input_x (Tensor) - 一个五维的输入Tensor。数据类型必须为float16、float32,shape为 (xnxcxdxhxw)

输出:

Tensor,与输入的类型相同。如果填充为”VALID”,则shape为 (xn,kdkhkwxc,1+(xdkd)/sd,1+(xhkh)/sh,1+(xwkw)/sw) ;如果填充”SAME”,则shape为 (xn,kdkhkwxc,(xd+sd1)/sd,(xh+sh1)/sh,(xw+sw1)/sw)

异常:
  • TypeError - 如果 kernel_sizestrides 不是一个list,tuple或int。

  • TypeError - 如果 input_x 不是Tensor。

  • TypeError - 如果 padding 不是str。

  • ValueError - 如果 kernel_size 的长度不是3或5,并且 kernel_size 不是int。

  • ValueError - 如果 strides 的长度不是3或5,并且 strides 不是int。

  • ValueError - 如果 padding 既不是”VALID”也不是”SAME”。

  • ValueError - 如果 kernel_sizestrides 的元素不是正整数。

  • ValueError - 如果 input_x 不是五维的Tensor。

  • ValueError - 如果 input_x 的shape含有0。

  • ValueError - 如果 kernel_sizestrides 的前两个数不等于1。

  • ValueError - 如果 padding 为”VALID”,并且 input_xkernel_size 在d、h或w维上小于0。

  • ValueError - 如果 padding 为”SAME”,并且 padding_needed=((input_x+strides1)/strides1)strides+kernel_sizeinput_x 在d、h或w维中小于0。

  • ValueError - 如果x_h不等于1或x_w不等于1,并且 xw+padding_neededkwsw 小于0。

  • ValueError - 如果 xdxhxw 大于2048。

支持平台:

Ascend GPU CPU

样例:

>>> kernel_size = (1, 1, 2, 2, 2)
>>> strides = (1, 1, 1, 1, 1)
>>> padding = "VALID"
>>> input_x = P.Reshape()(Tensor(np.arange(1, 28), mstype.float16), (1, 1, 3, 3, 3))
>>> output_y = ops.ExtractVolumePatches(kernel_size, strides, padding)(input_x)
>>> print(output_y.shape)
(1, 8, 2, 2, 2)