当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.slice用法及代码示例


从张量中提取切片。

用法

tf.slice(
    input_, begin, size, name=None
)

参数

  • input_ 一个Tensor
  • begin 一个 int32int64 Tensor
  • size 一个 int32int64 Tensor
  • name 操作的名称(可选)。

返回

  • Tensorinput_ 类型相同。

另见tf.strided_slice

此操作从张量 input_ 中提取大小为 size 的切片,从 begin 指定的位置开始。切片size 表示为张量形状,其中size[i] 是要切片的input_ 的'i'th 维度的元素数。切片的起始位置 (begin) 表示为 input_ 的每个维度中的偏移量。换句话说,begin[i] 是您要从中切片的input_ 的第 i 个维度的偏移量。

请注意,tf.Tensor.getitem 通常是一种更 Pythonic 的方式来执行切片,因为它允许您编写 foo[3:7,:-2] 而不是 tf.slice(foo, [3, 0], [4, foo.get_shape()[1]-2])

begin 是从零开始的; size 是基于 1 的。如果size[i] 为 -1,则维度 i 中的所有剩余元素都包含在切片中。换句话说,这相当于设置:

size[i] = input_.dim_size(i) - begin[i]

此操作要求:

0 <= begin[i] <= begin[i] + size[i] <= Di for i in [0, n]

例如:

t = tf.constant([[[1, 1, 1], [2, 2, 2]],
                 [[3, 3, 3], [4, 4, 4]],
                 [[5, 5, 5], [6, 6, 6]]])
tf.slice(t, [1, 0, 0], [1, 1, 3])  # [[[3, 3, 3]]]
tf.slice(t, [1, 0, 0], [1, 2, 3])  # [[[3, 3, 3],
                                   #   [4, 4, 4]]]
tf.slice(t, [1, 0, 0], [2, 1, 3])  # [[[3, 3, 3]],
                                   #  [[5, 5, 5]]]

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.slice。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。