【问题标题】:tensorflow: reduce_max function张量流:reduce_max 函数
【发布时间】:2016-06-20 05:54:13
【问题描述】:

考虑以下代码-

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 列向量。如果 keep_dims=True,我们有一个 2x1 矩阵。但它们有何不同?

【问题讨论】:

    标签: matrix tensorflow deep-learning


    【解决方案1】:

    如果你减少一个或多个索引(即张量的维度),你有效地减少了张量的等级(即它的维度数量,或者换句话说,你需要的索引数量来访问一个张量的元素)。通过设置keep_dims=True,您是在告诉 tensorflow 保留您减少的维度。然后它们将具有大小 1,但它们仍然存在。虽然列向量和 nx1 矩阵在概念上是相同的,但在 tensorflow 中,它们分别是秩 1(您需要一个索引来访问一个元素)和秩 2(您需要两个索引来访问一个元素)的张量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 2018-11-20
      • 2018-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多