TensorFlow tf.argmax函数

argmax函数定义:

argmax(input,
           axis=None,
           name=None,
           dimension=None,
           output_type=dtypes.int64)

参数 

  • input:输入Tensor 
  • axis:0表示按列,1表示按行 
  • name:名称 
  • dimension:和axis功能一样,dimension参数已过时,被axis替代
  • output_type:函数返回值类型,返回值可以有int32和int64两种类型,默认为int64

返回值:

  • Tensor类型,一般是行或列的最大值下标

示例:

A = [[1,3,4,5,6]]
B = [[1,3,4], [2,4,1]]
C = [[[16,6,3],[4,6,5]], [[8,7,9], [11,12,10]]]

 
with tf.Session() as sess:
    print(sess.run(tf.argmax(A, 0)))
    print(sess.run(tf.argmax(A, 1)))
    print(sess.run(tf.argmax(A, 1, output_type=tf.int32)))
    print(sess.run(tf.argmax(B, 0)))
    print(sess.run(tf.argmax(B, 1)))
    print(sess.run(tf.argmax(C, 0)))
    print(sess.run(tf.argmax(C, 1)))
    print(sess.run(tf.argmax(C, 2)))

输出:

[0 0 0 0 0]
#(A,0)  在向量列中找最大值的索引,而每个数据在每列中都是最大的(因为只有一个数),故返回[0 0 0 0 0]

[4]
#(A,1)   在向量行中找最大值的索引,6结果最大,最后返回6的序号[4]

[4]
#(A,1,output_type=tf.int32)   在向量行中找最大值的索引,6结果最大,最后返回6的序号[4]

[1 1 0]
#(B,0)  在矩阵列中找最大值的索引, 1 2最大值为2,故返回1;  3 4最大值为4,故返回1;  4 1最大值为4,故返回0, 最后返回[1 1 0]

[2 1]
#(B,1)  在矩阵行中最大致的索引, 1 3 4最大值为4,故返回2; 2 4 1最大值为4,故返回1, 最后返回[2,1]

[[0 1 1]
 [1 1 1]]
#(C,0) 在矩阵第0轴找最大值的索引, 16 8最大值为16,故返回0; 6 7最大值为7,故返回1; 相类似,最后5 10最大值为10,故返回1, 最后返回[[0 1 1][1 1 1]] 

[[0 0 1]
 [1 1 1]]
#(C,1) 在矩阵第1轴找最大值的索引, 16 4最大值为16,故返回0; 6 6最大值为6,故返回0,相类似,最后9 10最大值为10,故返回1 最后返回[[0 0 1][1 1 1]]

[[0 1]
 [2 1]]
#(C,2) 在矩阵第2轴找最大值的索引, 16 6 3中最大值为16,故返回0; 4 6 5最大值为6,故返回1;8 7 9最大值为9,故返回2;11 12 10最大值为12,故返回1;  最后结果为[[0 1][2 1]] 

其实tensorflow中的argmin,argmax和numpy中的argmin,argmax是一样的,都是返回索引。

参考:https://www.cnblogs.com/logo-88/p/9295858.html

 

你可能感兴趣的:(TensorFlow)