tensorflow:reduce_max函数

时间:2016-06-20 05:54:14

标签: matrix tensorflow deep-learning

考虑以下代码 -

a=tf.convert_to_tensor(np.array([[1001,1002],[3,4]]), dtype=tf.float32)
b=tf.reduce_max(a,reduction_indices=[1], keep_dims=True)
with tf.Session():
   print b.eval()

keep_dims的目的究竟是什么?我测试了很多,看到上面相当于 -

b=tf.reduce_max(a,reduction_indices=[1], keep_dims=False)
b=tf.expand_dims(b,1)

我可能错了,但我的猜测是如果keep_dims为False,我们会得到一个2D coloumn向量。如果keep_dims = True,我们有一个2x1矩阵。但他们有什么不同?

1 个答案:

答案 0 :(得分:4)

如果减少一个或多个索引(即张量的维数),则可以有效地降低张量的等级(即维度的数量,或者换句话说,为了访问张量所需的索引数量)张量元素)。通过设置keep_dims=True,您可以告诉tensorflow保持您减少的维度。然后它们的大小为1,但它们仍然那里。虽然列向量和nx1矩阵在概念上是相同的,但在张量流中,这些是等级1的张量(您需要单个索引来访问元素)和等级2(您需要两个索引来访问元素)。