首页 > 解决方案 > 哪些初始化器受 tf.variable_scope("Model", reuse=None, initializer=initializer) 影响?

问题描述

initializer = tf.random_uniform_initializer(-0.1,
                                                0.1)
with tf.name_scope("Train"):
    with tf.variable_scope("Model", reuse=None, initializer=initializer):
         model = network.Model(iterator, is_training=True)

我的问题是哪些变量受我在 variable_scope 中传递的初始化程序的影响?嵌入矩阵肯定会受到影响,因为我tf.get_variable用来创建矩阵并None作为初始值设定项传递。但是呢tf.layers.Conv2D?如果我保留kernel_initializer=None默认设置,是否会使用我在变量范围中使用的默认初始化程序?

我正在使用 TF 1.7

标签: pythontensorflow

解决方案


简短的回答是否定的。你可以检查它

initializer = tf.random_uniform_initializer(-0.1, 0.1)
with tf.variable_scope("Model", reuse=None, initializer=initializer):
    model = tf.layers.Conv2D(filters=3, kernel_size=1)

print(model.get_config())

如果你想一次为多个层设置一些参数,你可以使用 arg_scope,尽管它很快就会被弃用 contrib 模块


推荐阅读