2016-09-09 96 views
1

tf.contrib.layers.xavier_initializer()如何知道激活函數?xavier_initializer()如何知道激活?

初始化良好的標準偏差取決於所用的非線性。對?那麼tf.contrib.layers.xavier_initializer()知道怎麼回事?

看看下面的情況:

W = tf.get_variable("W", shape=[784, 256], 
      initializer=tf.contrib.layers.xavier_initializer()) 

該W做一些事情,以X,然後將結果傳遞給正切或者RELU或有你。現在,初始化器在W中。tensorflow如何將激活狀態映射出來?或者我必須介入,知道我將要使用的激活?

看着tf.contrib.layers.xavier_initializer的參數,我可以選擇unifrom或正態分佈。但是這並不能解決問題,對吧?

回答

0

初始化良好的標準偏差取決於所使用的非線性。對?

否。Xavier初始化不需要知道網絡使用的任何非線性。

實際上,Xavier初始化只是初始化從平均值= 0和方差= 1/<number_of_inputs>的隨機分佈中挑選值的權值。

聲明一個變量時,您傳遞shape參數。形狀參數的第一個維度是<number_of_inputs>

也許你正在尋找他的初始化,即對RELUéPReLU具體規定,但即使在這種情況下,變量的初始化不需要知道什麼是非線性將遵循