哪些初始化程序受tf.variable_scope(“ Model”,重用=无,初始化=初始化程序)影响?

时间:2019-05-22 12:34:56

标签: python tensorflow

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

1 个答案:

答案 0 :(得分:0)

简短的回答是否定的。您可以使用

进行检查
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模块