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