argmax :返回矩阵中的最大索引
一维矩阵的例子:
input1 = tf.constant([1.0, 2.0, 3.0])
with tf.Session() as sess:
print(sess.run(tf.argmax(input1)))
3最大,索引一般都是从0开始,所以应该返回2
输出:
二维矩阵的例子:
input1 = tf.constant([[1.0, 2.0, 3.0],[4.0, 5.0, 6.0]])
with tf.Session() as sess:
print(sess.run(tf.argmax(input1)))
直接上输出吧:
输出是一个矩阵
再调整一下参数:
input1 = tf.constant([[1.0, 2.0, 3.0],[4.0, 5.0, 6.0]])
with tf.Session() as sess:
print(sess.run(tf.argmax(input1,axis = 1)))
输出如下:
第一个shape是3 第二个shape是2
为什么呢?
三维矩阵的例子:
axis =0情况
input1 = tf.constant([
[[1.0, 2.0, 3.0],[6.0, 5.0, 4.0]],
[[10.0, 11.0, 12.0],[9.0, 8.0, 7.0]]
])
print(input1)
with tf.Session() as sess:
print(sess.run(tf.argmax(input1,axis = 0)))
输出:
axis =1情况
input1 = tf.constant([
[[1.0, 2.0, 3.0],[6.0, 5.0, 4.0]],
[[10.0, 11.0, 12.0],[9.0, 8.0, 7.0]]
])
print(input1)
with tf.Session() as sess:
print(sess.run(tf.argmax(input1,axis = 1)))
输出:
axis =2情况
input1 = tf.constant([
[[1.0, 2.0, 3.0],[6.0, 5.0, 4.0]],
[[10.0, 11.0, 12.0],[9.0, 8.0, 7.0]]
])
print(input1)
with tf.Session() as sess:
print(sess.run(tf.argmax(input1,axis = 2)))
输出:
axis =3的时候,程序崩溃,就是说axis最大是矩阵的维数-1
假设矩阵shape是(2,2,3)
如果axis是0---》结果(2,3)
如果axis是1--》结果(2,3)
如果axis是2--》结果(2,2)
以3维的矩阵为例,假设(x,y,z),
如果axis为0,就是返回的x方向的最大数的索引
如果axis为1,就是返回的y方向的最大数的索引
如果axis为2,就是返回的是z方向最大数的索引
这里想将矩阵如果:
--->下标表示 000b表示x=0,y=0,Z=0
如果axis是0 就是沿着X方向变动。
X000 X100===》1 X001 X101===》1 X002 X102==》1
X010 X110==》1 X011 X111=》1 X012 X113==》1
所以输出是