Tensorflow 提供了7種不同的初始化函數:
tf.constant_initializer(value) #將變量初始化爲給定的常量,初始化一切所提供的值。
假設在卷積層中,設置偏執項b爲0,則寫法爲:
1. bias_initializer=tf.constant_initializer(0)
2. bias_initializer=tf.zeros_initializer(0)
tf.random_normal_initializer(mean,stddev) #功能是將變量初始化爲滿足正太分佈的隨機值,主要參數(正太分佈的均值和標準差),用所給的均值和標準差初始化均勻分佈
tf.truncated_normal_initializer(mean,stddev,seed,dtype) #功能:將變量初始化爲滿足正太分佈的隨機值,但如果隨機出來的值偏離平均值超過2個標準差,那麼這個數將會被重新隨機
mean:用於指定均值;stddev用於指定標準差;seed:用於指定隨機數種子;dtype:用於指定隨機數的數據類型。
通常只需要設定一個標準差stddev這一個參數就可以。
tf.random_uniform_initializer(a,b,seed,dtype) #從a到b均勻初始化,將變量初始化爲滿足平均分佈的隨機值,主要參數(最大值,最小值)
tf.uniform_unit_scaling_initializer(factor,seed,dtypr) #將變量初始化爲滿足平均分佈但不影響輸出數量級的隨機值
max_val=math.sqrt(3/input_size)*factor;
input_size指輸入數據的維數,假設輸入爲x,計算爲x*w,則input_size=w.shape[0].
其分佈區間爲[-max_val,max_val]
tf.zeros_initializer() #將變量設置爲全0;也可以簡寫爲tf.Zeros()
tf.ones_initializer() #將變量設置爲全1;可簡寫爲tf.Ones()