如何从参差不齐的张量中减去张量?

问题描述 投票:0回答:0

我问的问题非常类似于TensorFlow broadcasting of RaggedTensor

基本上,我在做机器学习,一个数据样本由一个坐标列表组成,其中每个坐标列表代表画布上的一个绘图笔划。一个这样的样本可能是,

[
[[2,3], [2,4], [3,6], [4,8]], 
[[7,3], [10,9]], 
[[10,12], [14,17], [13,15]]
]

我想通过减去平均值并除以标准差来归一化这些坐标。具体来说,我想分别找到所有 x 坐标 (index=0) 和 y 坐标 (index=1) 的均值和标准差。 我通过

获得了这些值
list_points=tf.ragged.constant(list_points)
STD=tf.math.reduce_std(list_points, axis=(0,1))
mean=tf.reduce_mean(list_points, axis=(0,1))

STD 和均值都具有 (2,)

的形状

现在,我想从 list_points 中减去平均值(这是坐标列表的示例列表),但似乎对于 ragged_rank=3,我只能减去覆盖每个数据点的标量或张量。有没有一种简单的方法可以简单地将 RaggedTensor 减去形状为 (2,) 的张量?

我试图直接从 list_points 中简单地减去 mean,但无论我做什么,我都会得到这个错误:

ValueError: pylist 的标量值深度为 3,但 ragged_rank=3 要求标量值深度大于 3

python tensorflow machine-learning tensor ragged-tensors
© www.soinside.com 2019 - 2024. All rights reserved.