TF random_normal和Python numpy random.normal的用法
阿新 • • 發佈:2018-12-21
先看TF
tf.random_normal()函式用於從服從指定正太分佈的數值中取出指定個數的值。
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
再看NP
np.random.normal()給出均值為loc,標準差為scale的高斯隨機數(場).
numpy.random.normal(loc=0.0, scale=1.0, size=None)
所謂正態分佈高斯分佈,所以二者一回事
meanloc均值(或稱期待值)
stddevscale標準差
shapesize輸出形狀,二者在處理這個引數時候(a,b)
比如建立隨機數的一行兩列陣列:
np.random.normal([2])==np.random.normal((2))==np.random.normal(0,1,2)注意最後一種用法必須帶上前面兩個引數,否則傳遞引數時候會把2當作均值傳遞
而tf的random_normal對shape的要求不能是數字,必須為[]或()格式
再探究一下形狀引數的規律,看下面程式碼
a=np.random.normal(0,1,(2,1)) b=np.random.normal(0,1,(1,2)) c=np.random.normal(0,1,(2)) print(a) print(a.shape) print(b) print(b.shape) print(c) print(c.shape)
程式輸出如下
[[ 1.11843359]
[-0.69801129]]
(2, 1)
[[-0.87110089 -0.46089345]]
(1, 2)
[ 0.88227522 -0.26728542]
(2,)
a,b是二維的矩陣,c是一維的矩陣(嚴格說一維的不是矩陣)