gpt4 book ai didi

multidimensional-array - TensorFlow:在多个维度上采用 L2 范数

转载 作者:行者123 更新时间:2023-12-01 13:35:00 30 4
gpt4 key购买 nike

我有一个 TensorFlow 占位符,它有 4 个维度,代表一批图像。每个图像为 32 x 32 像素,每个像素有 3 个颜色 channel 。第一个维度表示图像的数量。
X = tf.placeholder(tf.float32, [None, 32, 32, 3])
对于每张图像,我想采用所有图像像素的 L2 范数。因此,输出应该是一个一维的张量(即每个图像一个值)。 tf.norm() ( documentation ) 接受一个轴参数,但当我想对轴 1、2 和 3 取范数时,它只允许我指定最多两个轴取范数。我该怎么做?

n = tf.norm(X, ord=2, axis=0)          # n.get_shape() is (?, ?, 3), not (?)
n = tf.norm(X, ord=2, axis=[1,2,3]) # ValueError

最佳答案

您不需要其他答案中建议的展平。如果你仔细阅读documentation ,你会看到:

axis: If axis is None (the default), the input is considered a vector and a single vector norm is computed over the entire set of values in the tensor, i.e. norm(tensor, ord=ord) is equivalent to norm(reshape(tensor, [-1]), ord=ord)



例子:
import tensorflow as tf
import numpy as np

c = tf.constant(np.random.rand(3, 2, 3, 6))
d = tf.norm(c, ord=2)

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

关于multidimensional-array - TensorFlow:在多个维度上采用 L2 范数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44212125/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com