如何在 tensorflow 中 join/concat/combine 参差不齐的张量?

How to join/concat/combine ragged tensors in tensorflow?

所以基本上我有一个参差不齐的张量(例如 [[1, 2, 3], [4, 5], [6]]),我想用它们之间的特殊字符连接它们,比如具体数字,比如 0。所以结果将是 [[1, 2, 3, 0, 4, 5, 0, 6]]。所以这就像连接字符串一样,但我想用参差不齐的整数来做。我没有办法将它变成@tf.function。这样做的目的也是连接文档句子的标记,而该特殊字符是指示句子结束和另一个句子开始的位置。

尝试使用 tf.concatragged.merge_dims:

import tensorflow as tf

ragged = tf.ragged.constant([[1, 2, 3], [4, 5], [6]])
rows = ragged.bounding_shape()[0]
ragged = tf.concat([ragged, tf.concat([tf.expand_dims(tf.repeat([0], repeats=rows-1), axis=-1), tf.ragged.constant([[]], dtype=tf.int32)], axis=0)], axis=-1)
ragged = tf.expand_dims(ragged.merge_dims(0, 1), axis=0)
print(ragged)
# tf.Tensor([[1 2 3 0 4 5 0 6]], shape=(1, 8), dtype=int32)