设置深度模型时,我收到此警告消息。
警告信息
警告:tensorflow:初始化程序的默认stddev值将更改 来自" 1 / sqrt(vocab_size)"至" 1 / sqrt(维度)" 2017/02/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
]
答案 0 :(得分:1)
如果您没有明确give an initializer function到embedding_columns
,则张量流将使用默认初始值设定项,这是一个法线,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)