CNN之tf.argmax,简单暴力带你学
以下代码均在ubunu20.04下完成,与之前版本略有不同,均以改正!!
import tensorflow.compat.v1 as tf
tf.compat.v1.disable_eager_execution()
x=tf.constant([[1.,2.,3.,4.,],[5.,6.,7.,8.],[9.,10.,11.,12.],[13.,14.,15.,16]])
x=tf.reshape(x,[2,2,4,1])//把x分成两大块,两大块里在分两小块,两小块在分成一个4*1的矩阵
c0=tf.argmax(x,axis=0)
c1=tf.argmax(x,axis=1)
c2=tf.argmax(x,axis=2)
c3=tf.argmax(x,axis=3)
with tf.Session() as sess:
a7=sess.run(c0)
a8=sess.run(c1)
a9=sess.run(c2)
a10=sess.run(c3)
print(a7)
print(a8)
print(a9)
print(a10)
这里是[2,2,4,1]的x,再说一遍,把x分成两大块,两大块里在分两小块,两小块在分成一个4*1的矩阵,观察中括号你就可以发现!!
重点来咯!!!
axis=0,在0轴啥意思呢:就是在刚才分好的两大块之间分别对比,选取比较大的数字的索引值。
例如1和9,2和10;其中 1 的索引为 0,9 的索引为 1。2和10同理。
因为9大于1,就写1。 10大于2,就写1.
axis=1,意思就是在1轴进行对比,不懂没关系,这次注意观察两小块,这次就是在两小块之间对比。举例子不废话:1 和 5;2 和 6;;同理 1 的索引是 0 ;5 的索引是 1;谁大就写谁的。简单不,嘿嘿
axis=2;这个我不多废话,肯定是更小的进行对比。上例子:1 2 3 4 一起比较,1的索引是0,2的的索引是1,3的索引是2,4的索引是3;很明显 4 最大,所以 写 3
最后一个没人比较 ,都是自己000000,嘿嘿嘿嘿哈