1, 做batch_normlization時,computation graph的計算:
2,假設輸入是X的維度是(N,C,H,W),對卷積層做batch_normalization時,scale和sift有C維,計算mean和std是對N*H*W維來做計算,而不是對N維,即不是對第c個通道的(i,j)位置計算mean和std。但在對全連層做BN時,是對N維來計算。
3,對np.transpose的理解:
import numpy as np
a = np.arange(120).reshape(2,3,4,5)
b = a.transpose(0,3,1,2) #tp = [0,3,1,2]
b.shape ##b[i] = a[tp[i]] (2,5,3,4)
由矩陣flatten到向量,再由向量轉換爲矩陣:
a = np.array([[0, 1, 2],[3, 4, 5]])
b = np.reshape(a,-1)
b.reshape((2,3)) #不等於下式
b.reshape((3,2)).T
3,python2中的range返回的是一個列表,python3中的range返回的是一個迭代值