关于np.max及tf.reduce_mean的计算轴axis的理解
np.max(axis=), tf.reduce_mean(axis=)的理解。下面以np.max作理解
import numpy as np
a = [[[1,2,3],[11,22,33]],[[10,20,30],[110,220,330]],[[101,201,301],[11001,22001,33001]],[[55,66,77],[550,660,770]]]
b = np.array(a)
print(b)
[[[ 1 2 3]
[ 11 22 33]]
[[ 10 20 30]
[ 110 220 330]]
[[ 101 201 301]
[11001 22001 33001]]
[[ 55 66 77]
[ 550 660 770]]]
print(b.max(axis=0))
[[ 101 201 301]
[11001 22001 33001]]
print(b.max(axis=1))
[[ 11 22 33]
[ 110 220 330]
[11001 22001 33001]
[ 550 660 770]]
print(b.max(axis=2))
[[ 3 33]
[ 30 330]
[ 301 33001]
[ 77 770]]
b.shape
(4, 2, 3)
shape=[x, y, z],从这里结果看:
- axis=0,返回shape=[y,z]
每个x中的全部[y,z]作比较,即每个x元素的比较 - axis=1,返回shape=[x,z]
在每个x元素内,每个y中的z维度元组比较 - axis=2,返回shape=[x,y]
在每个z中的内部元素做比较
axis=n表示在n维比较各个元素,对应数值位置,最后消除了n维度。