对 tf.argmax()的理解
此函数时返回指定维度的最大值的索引(一定记住,好多次我都以为是返回值),对于此函数,先看一下函数说明,
tf.argmax(
input,
axis=None,
name=None,
dimension=None,
output_type=tf.int64 )
这个input 为输入的对象,axis为维度,若为向量,则维度为0;若为多维则可为0或者1,0为按列查找最大值的索引,1为按行查找最大值的索引。
下面看一个例子:
import tensorflow as tf
Vector = [2, 1, 3, 5] # 定义了一个向量
X = [[2, 6, 1], [3, 1, 9]] # 定义了一个矩阵
print (Vector)
print (X)
with tf.Session() as sess:
a = tf.argmax(Vector, 0)
b = tf.argmax(X, 0)
c = tf.argmax(X, 1)
print(sess.run(a))
print(sess.run(b))
print(sess.run(c))
运行结果:
3
[1 0 1]
[1 2]
可以看到返回的是索引,而不是数值。
相信这些很多博客也有说明,但是对于每一行或者每一列中有相同大的数应该返回什么呢?好像都没有提及。
下面再看一个例子:
import tensorflow as tf
Vector = [2, 5, 3, 5] # 定义一个向量
X = [[3, 6, 1], [3, 9, 9]] # 定义一个矩阵
print (Vector)
print (X)
with tf.Session() as sess:
a = tf.argmax(Vector, 0)
b = tf.argmax(X, 0)
c = tf.argmax(X, 1)
print(sess.run(a))
print(sess.run(b))
print(sess.run(c))
运行结果:
1
[0 1 1]
[1 1]
那可以看到,返回的是第一个最大值的索引。
引用了https://blog.csdn.net/u013580539/article/details/79339250