0
我有两个简单的函数,如下所示。当我调用sim_train()时,我期望名称和值应计算为avg_mean和avg_variance。然而,输出是这样的----所有的值都是0,但是当我直接打印出avg_mean和avg_variance并且这些值是正确的。如何在Tensorflow中打印并加载所有变量的名称和值
SSS/avg_mean:0 [ 0.]
SSS/avg_variance:0 [ 0.]
-2.5 1.25
当我打电话sim_test(),这也说明
SSS/avg_mean:0 [ 0.]
SSS/avg_variance:0 [ 0.]
有什么办法,我在sim_test使用正确的值()?谢谢
def sim_train():
x = tf.constant([-1,-2,-3,-4], tf.float32)
with tf.variable_scope("SSS"):
avg_mean = tf.get_variable(
'avg_mean', [1], tf.float32,
initializer=tf.constant_initializer(0.0, tf.float32))
avg_variance = tf.get_variable(
'avg_variance', [1], tf.float32,
initializer=tf.constant_initializer(0.0, tf.float32))
avg_mean, avg_variance = tf.nn.moments(x, [0], name='moments')
sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
allVars = tf.global_variables()
values = sess.run(allVars)
for var, val in zip(allVars, values):
print(var.name, val)
print(avg_mean.eval(), avg_variance.eval())
saver = tf.train.Saver()
saver.save(sess, "/tmp/test_EMA/sim_save.ckpt")
def sim_test():
#saver = tf.train.Saver()
sess = tf.InteractiveSession()
saver = tf.train.import_meta_graph('/tmp/test_EMA/sim_save.ckpt.meta')
saver.restore(sess, "/tmp/test_EMA/sim_save.ckpt")
allVars = tf.global_variables()
values = sess.run(allVars)
for var, val in zip(allVars, values):
print(var.name, val)
谢谢@Kochoba。你的解释非常清楚,现在我的代码工作。 – Brandon
@Brandon如果您发现我的答案有帮助,可以请您注册。谢谢 – Kochoba
谢谢你,Kochoba。对不起,我只能接受答案。虽然我已经上了场,但它不会公开显示,因为根据通知,我的身份证的声望很低。 – Brandon