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


Python tf.RaggedTensor.__getitem__用法及代码示例


用法

__getitem__(
    key
)

参数

  • rt_input 要切片的 RaggedTensor。
  • key 使用标准 Python 语义(例如,从末尾开始的负值索引)指示要返回的 RaggedTensor 的哪一部分。key可能有以下任何一种类型:
    • int 常量
    • 标量整数Tensor
    • slice 包含整数常量和/或标量整数 Tensor s

    • Ellipsis

    • tf.newaxis

    • tuple 包含以上任何一项(用于多维索引)

返回

  • TensorRaggedTensor 对象。包含至少一个参差不齐的维度的值将返回为 RaggedTensor 。不包含不规则尺寸的值将返回为 Tensor 。有关返回 Tensor s 与 RaggedTensor s 的表达式示例,请参见上文。

抛出

  • ValueError 如果key 超出范围。
  • ValueError 如果不支持key
  • TypeError 如果 key 中的索引具有不受支持的类型。

返回此 RaggedTensor 的指定部分。

支持多维索引和切片,但有一个限制:不允许索引到参差不齐的内部维度。这种情况是有问题的,因为指示的值可能存在于某些行中但不存在于其他行中。在这种情况下,我们是否应该(1)报告 IndexError 并不明显; (2) 使用默认值;或 (3) 跳过该值并返回一个比我们开始时行数更少的张量。遵循 Python 的指导原则(“面对歧义,拒绝猜测的诱惑”),我们简单地禁止这种操作。

例子:

# A 2-D ragged tensor with 1 ragged dimension.
rt = tf.ragged.constant([['a', 'b', 'c'], ['d', 'e'], ['f'], ['g']])
rt[0].numpy()                 # First row (1-D `Tensor`)
array([b'a', b'b', b'c'], dtype=object)
rt[:3].to_list()              # First three rows (2-D RaggedTensor)
[[b'a', b'b', b'c'], [b'd', b'e'], [b'f']]
rt[3, 0].numpy()              # 1st element of 4th row (scalar)
b'g'
# A 3-D ragged tensor with 2 ragged dimensions.
rt = tf.ragged.constant([[[1, 2, 3], [4]],
                         [[5], [], [6]],
                         [[7]],
                         [[8, 9], [10]]])
rt[1].to_list()               # Second row (2-D RaggedTensor)
[[5], [], [6]]
rt[3, 0].numpy()              # First element of fourth row (1-D Tensor)
array([8, 9], dtype=int32)
rt[:, 1:3].to_list()          # Items 1-3 of each row (3-D RaggedTensor)
[[[4]], [[], [6]], [], [[10]]]
rt[:, -1:].to_list()          # Last item of each row (3-D RaggedTensor)
[[[4]], [[6]], [[7]], [[10]]]

相关用法


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