TensorFlow中如何实现两个同形状RaggedTensor的交错拼接
可以实现,针对两个结构完全一致的RaggedTensor,你可以使用tf.ragged.stack搭配RaggedTensor自带的merge_dims方法完成需求,不需要手动指定reshape尺寸,完美适配动态不规则维度。
具体实现代码
import tensorflow as tf # 定义示例RaggedTensor a = tf.ragged.constant([[[10,10]],[[20,20],[21,21]]]) b = tf.ragged.constant([[[30,30]],[[40,40],[41,41]]]) # 核心逻辑 # 1. 在倒数第二个轴堆叠两个张量,生成[a元素, b元素]的交错结构 stacked = tf.ragged.stack([a, b], axis=2) # 2. 合并相邻的不规则维度和堆叠维度,不需要指定固定尺寸 c = stacked.merge_dims(1, 2)
输出验证
打印结果和你期望的完全一致:
>>> print(c) <tf.RaggedTensor [[[10, 10], [30, 30]], [[20, 20], [40, 40], [21, 21], [41, 41]]]>
注意事项
该方案要求两个输入RaggedTensor的不规则维度划分完全一致,你问题中提到的两个形状完全相同的RaggedTensor刚好满足该前提,TF2.6版本完全支持上述用到的所有API。
内容的提问来源于stack exchange,提问作者Miquel Ferriol Galmés
相关产品推荐
相关产品推荐

