张量流-归一化向量

时间:2019-03-10 19:58:25

标签: python tensorflow

我有一个向量,看起来像[0, 0.2, 0, 0.24, 0, 0, 0.4, 0.12]。张量流中是否有一个运算符可以对该向量进行归一化,使得其值在0到1之间(其中0.24为1)。

我不知道事前的最大值(即0.24)。范围相当随意。

3 个答案:

答案 0 :(得分:1)

您可以尝试tf.math.l2_normalize

arr = [0, 0.2, 0, 0.24, 0, 0, 0.4, 0.12]
norm = tf.math.l2_normalize(arr)

with tf.Session() as sess:
    print(sess.run(norm))

输出

[0., 0.38348246, 0., 0.46017894, 0., 0., 0.7669649, 0.23008947]

https://www.tensorflow.org/api_docs/python/tf/math/l2_normalize

答案 1 :(得分:0)

您可以在tensorflow文档中查看有关此内容的信息,但您可以使用numpy lib或scipy的标准偏差和均值轻松实现min max归一化或z分数归一化

这是用于numpy数组的,但是您可以理解这个主意

# min-max mormalization
def normalize(X):
    col_max = np.max(X, axis=0)
    col_min = np.min(X, axis=0)
    normX = np.divide(X - col_min, col_max - col_min)
    return normX

答案 2 :(得分:0)

检查tensorflow_transform.scale_to_0_1函数,tensorflow_transform是用于在训练和预测期间应用不同类型的转换的api。 https://www.tensorflow.org/tfx/transform/api_docs/python/tft/scale_to_0_1