當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.RaggedTensor.from_uniform_row_length用法及代碼示例


用法

@classmethod
from_uniform_row_length(
    values, uniform_row_length, nrows=None, validate=True, name=None
)

參數

  • values 形狀可能參差不齊的張量 [nvals, ...]
  • uniform_row_length 一個標量整數張量。必須是非負數。 values 的外軸大小必須能被 uniform_row_length 整除。
  • nrows 構造的 RaggedTensor 中的行數。如果未指定,則默認為 nvals/uniform_row_length (或 0 如果 uniform_row_length==0 )。僅當uniform_row_length 可能為零時才需要指定nrowsuniform_row_length*nrows 必須是 nvals
  • validate 如果為真,則使用斷言檢查參數是否形成有效的 RaggedTensor 。注意:這些斷言會產生運行時成本,因為必須檢查每個張量值。
  • name RaggedTensor 的名稱前綴(可選)。

返回

  • A RaggedTensor對應於由以下定義的python列表:
    result = [[values.pop(0) for i in range(uniform_row_length)]
              for _ in range(nrows)]

    result.rank = values.rank + 1result.ragged_rank = values.ragged_rank + 1

創建一個 RaggedTensor ,其中行由 uniform_row_length 分區。

此方法可用於創建具有多個統一外部尺寸的 RaggedTensor 。例如,形狀為 [2, 2, None]RaggedTensor 可以使用此方法從形狀為 [4, None]RaggedTensor 值構造:

values = tf.ragged.constant([[1, 2, 3], [4], [5, 6], [7, 8, 9, 10]])
print(values.shape)
(4, None)
rt1 = tf.RaggedTensor.from_uniform_row_length(values, 2)
print(rt1)
<tf.RaggedTensor [[[1, 2, 3], [4]], [[5, 6], [7, 8, 9, 10]]]>
print(rt1.shape)
(2, 2, None)

請注意,rt1 僅包含一個參差不齊的維度(最內層維度)。相反,如果 from_row_splits 用於構造類似的 RaggedTensor ,則該 RaggedTensor 將具有兩個參差不齊的維度:

rt2 = tf.RaggedTensor.from_row_splits(values, [0, 2, 4])
print(rt2.shape)
(2, None, None)

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.RaggedTensor.from_uniform_row_length。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。