關於np.max及tf.reduce_mean的計算軸axis的理解
阿新 • • 發佈:2019-01-09
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維度。