2017-08-08 86 views
1

初始化程序的默認stddev值將從「1/sqrt(vocab_size)」更改爲「1/sqrt(dimension)」。設置Deep Model時收到此警告消息。警告:tensorflow:2017/02/25

警告消息

警告:tensorflow:初始值設定的默認STDDEV值將改變 從 「1/SQRT(vocab_size)」 至 「1/SQRT(尺寸)」 2017年2月25日之後。

我的代碼

deep_columns = [ 
    tf.contrib.layers.embedding_column(workclass, dimension=8), 
    tf.contrib.layers.embedding_column(education, dimension=8), 
    tf.contrib.layers.embedding_column(gender, dimension=8), 
    tf.contrib.layers.embedding_column(relationship, dimension=8), 
    tf.contrib.layers.embedding_column(native_country, dimension=8), 
    tf.contrib.layers.embedding_column(occupation, dimension=8), 
    age, education_num, capital_gain, capital_loss, hours_per_week 
] 

請指點。謝謝。

回答

1

如果你不明確give an initializer functionembedding_columns,tensorflow將使用默認初始值,這與0正常均值和1/sqrt(vocab_size)標準偏差爲下面的代碼:

if initializer is None: 
     ... 
     stddev = 1/math.sqrt(sparse_id_column.length) 
     initializer = init_ops.truncated_normal_initializer(
      mean=0.0, stddev=stddev) 

這僅僅是一個警告,在不久的將來,默認的初始化函數將會稍微改變(雖然看起來他們在截止日期之前有點遲)。沒有什麼重要的,不應該影響你的工作(可能需要更多或更少的時間來收斂,但差異應該是不明顯的)。

如果警告干擾了您,您可以在創建嵌入列時給出initializer function explicitly,或者您可以通過僅將錯誤設置爲錯誤來忽略警告。 tf.logging.set_verbosity(tf.logging.ERROR)