学习TensorFlow遇到的问题:python
1 如何在不一样计算图上定义和使用变量学习
书上代码:.net
import tensorflow as tf
g1 = tf.Graph()
with g1.as_default():
#在计算g1中定义变量“v”,并设置初始值为0。
v = tf.get_variable(
"v", initializer=tf.zeros_initializer(shape=[1])
)
g2 = tf.Graph()
with g2.as_default():
#在计算图g2中定义变量"v",并设置初始值为1.
v=tf.get_variable(
"v", initializer=tf.ones_initializer(shape=[1])
)
#在计算图g1中读取变量“v”的取值。
with tf.Session(graph=g1) as sess:
#tf.initialize_all_variables().run
tf.global_variables_initializer().run()
with tf.variable_scope("",reuse=True):
#在计算图g1中,变量“v”的取值应该为0,因此下面这行会输出[0.]
print(sess.run(tf.get_variable("v")))
#在计算图g2中读取变量”v“的取值
with tf.Session(graph=g2) as sess:
tf.initialize_all_variables().run()
with tf.variable_scope("",reuse=True):
#在计算图g2中,变量”v“的取值应该为1,因此下面这行会输出[1.]
print(sess.run(tf.get_variable("v")))
报错:blog
故在网上找了缘由:get
了解到是因为python版本的问题it
错误更改:io
v = tf.get_variable("v", shape=[1], initializer=tf.zeros_initializer)
虽然输出告终果可是会有警告以下图:class
警告更改:import
tf.global_variables_initializer().run()
参照 博客下面的评论了解到是因为新版tf.zeros_initializer和ones_initializer后面须要加括号
tf.get_variable(“v”,initializer=tf.zeros_initializer(shape=[1]))
改成:
v = tf.get_variable(“v”,initializer=tf.zeros_initializer( )(shape=[1]))