You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取由Ragged Tensor构建的数据集的元素最大长度?

获取Ragged Tensor构建的数据集的最大元素长度

针对你给出的由Ragged Tensor构建的tf.data.Dataset,可以通过以下几种方式获取所有元素的最大长度(示例中结果为4):

方法一:利用数据集的reduce操作

直接通过数据集的reduce方法遍历每个元素,动态更新当前最大长度:

import tensorflow as tf

ds = tf.data.Dataset.from_tensor_slices(
    tf.ragged.constant([[1, 2, 3, 4], [], [5, 6, 7], [8], []]))

max_length = ds.reduce(0, lambda current_max, elem: tf.maximum(current_max, tf.shape(elem)[0]))
print(max_length.numpy())  # 输出:4

方法二:收集所有元素长度后求最大值

先遍历数据集获取每个元素的长度,再用tf.reduce_max计算最大值:

lengths = [tf.shape(elem)[0] for elem in ds]
max_length = tf.reduce_max(lengths).numpy()
print(max_length)  # 输出:4

方法三:基于原始Ragged Tensor直接计算

如果你能访问构建数据集的原始Ragged Tensor,可以更高效地通过row_lengths()获取所有元素长度,再求最大值:

original_ragged = tf.ragged.constant([[1, 2, 3, 4], [], [5, 6, 7], [8], []])
max_length = tf.reduce_max(original_ragged.row_lengths()).numpy()
print(max_length)  # 输出:4

内容的提问来源于stack exchange,提问作者Mykola Zotko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 01:35:07