roh*_*hin 1 matrix deep-learning tensorflow
考虑以下代码-
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()
Run Code Online (Sandbox Code Playgroud)
keep_dims的目的到底是什么?我进行了相当多的测试,发现以上内容等同于-
b=tf.reduce_max(a,reduction_indices=[1], keep_dims=False)
b=tf.expand_dims(b,1)
Run Code Online (Sandbox Code Playgroud)
我可能错了,但我的猜测是,如果keep_dims为False,我们将获得2D列向量。如果keep_dims = True,我们有一个2x1矩阵。但是它们有什么不同?
如果减少一个或多个索引(即张量的维),则可以有效地减少张量的秩(即张量的维数,换句话说,就是访问张量的元素所需的索引数)。张量)。通过设置keep_dims=True,您告诉tensorflow保持减小的尺寸。这样它们的大小将为1,但是它们仍然存在。虽然列向量和nx1矩阵在概念上是相同的,但在张量流中,它们分别是等级1(您需要一个索引来访问元素)和等级2(您需要两个索引来访问元素)的张量。