从张量中提取切片。
用法
tf.slice(
input_, begin, size, name=None
)
参数
-
input_
一个Tensor
。 -
begin
一个int32
或int64
Tensor
。 -
size
一个int32
或int64
Tensor
。 -
name
操作的名称(可选)。
返回
-
Tensor
与input_
类型相同。
此操作从张量 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]]]
相关用法
- Python tf.summary.scalar用法及代码示例
- Python tf.strings.substr用法及代码示例
- Python tf.strings.reduce_join用法及代码示例
- Python tf.sparse.cross用法及代码示例
- Python tf.sparse.mask用法及代码示例
- Python tf.strings.regex_full_match用法及代码示例
- Python tf.sparse.split用法及代码示例
- Python tf.strings.regex_replace用法及代码示例
- Python tf.signal.overlap_and_add用法及代码示例
- Python tf.strings.length用法及代码示例
- Python tf.strided_slice用法及代码示例
- Python tf.sparse.to_dense用法及代码示例
- Python tf.strings.bytes_split用法及代码示例
- Python tf.summary.text用法及代码示例
- Python tf.shape用法及代码示例
- Python tf.sparse.expand_dims用法及代码示例
- Python tf.signal.frame用法及代码示例
- Python tf.scatter_nd用法及代码示例
- Python tf.sparse.maximum用法及代码示例
- Python tf.signal.linear_to_mel_weight_matrix用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.slice。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。