【问题标题】:Reshape Tensorflow RaggedTensor重塑 TensorFlow RaggedTensor
【发布时间】:2021-04-29 18:58:40
【问题描述】:

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

【问题讨论】:

    标签: tensorflow ragged-tensors


    【解决方案1】:

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

    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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-18
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多