2017-08-08 64 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)