这个问题类似于这个问题:
除了我想用起始值预先填充这个张量.给定参差不齐的张量:
[[1],
[4, 2],
[1, 2, 3]]
我预计输出结果为:
[[1 1 1],
[4 4 2],
[1 2 3]]
我希望能够将该解应用于较大的锯齿张量.
这个问题类似于这个问题:
除了我想用起始值预先填充这个张量.给定参差不齐的张量:
[[1],
[4, 2],
[1, 2, 3]]
我预计输出结果为:
[[1 1 1],
[4 4 2],
[1 2 3]]
我希望能够将该解应用于较大的锯齿张量.
只需使用锯齿张量的性质:
import tensorflow as tf
x = tf.ragged.constant([[1],
[4, 2],
[1, 2, 3]])
rows_to_pad = tf.abs(x.row_lengths() - tf.reduce_max(x.row_lengths()))
padded_x = tf.concat([tf.RaggedTensor.from_row_lengths(
values=tf.repeat(tf.gather(x.merge_dims(0, -1), x.row_starts()), rows_to_pad, axis=0),
row_lengths=rows_to_pad), x], axis=-1).to_tensor()
[[1 1 1]
[4 4 2]
[1 2 3]]
另一个参差不齐的张量:
x = tf.ragged.constant([[1, 4, 5, 6, 7, 8, 3],
[4, 2],
[1, 2, 3],
[1, 2, 3, 4, 5],
[1]])
预填充值:
[[1 4 5 6 7 8 3]
[4 4 4 4 4 4 2]
[1 1 1 1 1 2 3]
[1 1 1 2 3 4 5]
[1 1 1 1 1 1 1]]