在没有任何初始化程序规范的情况下调用tf.get_variable()
时使用的变量初始化的默认方法是什么? Docs只是说'无'。
答案 0 :(得分:13)
如果初始化程序为
None
(默认值),则将使用在变量作用域中传递的默认初始值设定项。如果那个也是None
,则会使用glorot_uniform_initializer
。
glorot_uniform_initializer
函数从统一分布初始化值。
此功能为documented:
Glorot统一初始化器,也称为Xavier统一初始化器。
它从[-limit,limit],中的均匀分布中抽取样本 其中
limit
为sqrt(6 / (fan_in + fan_out))
其中fan_in
是权重张量中输入单位的数量
fan_out
是权重张量中的输出单位数。参考:http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf