重塑Tensorflow Ragged传感器

重塑Tensorflow Ragged传感器,tensorflow,ragged-tensors,Tensorflow,Ragged Tensors,我有一个4D形状的RaggedSensor(批次大小,无,无,100),我想从中创建一个形状张量(批次大小,无,100)。所以基本上是合并第一维度和第二维度,但不包括任何填充([1,2,3],[4]=>[1,2,3,4]),并且不首先转换为稠密张量。 有办法做到这一点吗?如果不是的话,还有什么可以解决的呢?经过更多的阅读和尝试,我找到了答案,这需要对两个维度中的每个维度使用两次。 结果如下: row_starts = [my_ragged_tensor.values.row_starts()[r

我有一个4D形状的RaggedSensor(批次大小,无,无,100),我想从中创建一个形状张量(批次大小,无,100)。所以基本上是合并第一维度和第二维度,但不包括任何填充([1,2,3],[4]=>[1,2,3,4]),并且不首先转换为稠密张量。
有办法做到这一点吗?如果不是的话,还有什么可以解决的呢?

经过更多的阅读和尝试,我找到了答案,这需要对两个维度中的每个维度使用两次。 结果如下:

row_starts = [my_ragged_tensor.values.row_starts()[row_start]
                      for row_start in my_ragged_tensor.row_starts()]

my_ragged_tensor_flat = tf.RaggedTensor.from_row_starts(my_ragged_tensor.flat_values, row_starts)
这会将“my_ragged_tensor”的形状从(batch_size,None,None,100)更改为(batch_size,None,100)合并两个中间维度

编辑:

更简单的方法
my_ragged_tensor.merge_dims(1,2)