【发布时间】:2016-10-25 19:54:30
【问题描述】:
我有一个预定义的代码来创建一个 Tensorflow 图。变量包含在变量范围内,每个变量都有一个预定义的初始化程序。 有没有办法改变变量的初始化器?
示例: 第一张图定义
with tf.variable_scope('conv1')
w = tf.get_variable('weights')
稍后我想修改变量并将初始化程序更改为 Xavier:
with tf.variable_scope('conv1')
tf.get_variable_scope().reuse_variable()
w = tf.get_variable('weights',initializer=tf.contrib.layers.xavier_initializer(uniform=False))
但是,当我重用一个变量时,初始化程序不会改变。
稍后当我做initialize_all_variables() 时,我得到默认值而不是 Xavier
如何更改变量的初始化程序?
谢谢
【问题讨论】:
-
因为你想共享/重用变量,所以只有一个变量,它也应该有一个初始化器,并且在这种情况下更改初始化器在概念上似乎没有意义;可能这就是 Tensorflow 不允许您更改它的原因。您可以简单地将初始化程序添加到 tf.get_variable('weights') 或 tf.variable_scope('conv1') 的第一次出现吗?
标签: python tensorflow