在3.1.2的在第一段代码中,如果用较新版本的tensorflow来进行编代码输入,会出现错误,一般表现如下
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])) #会在这个位置报错,新版本中的写法如下
# 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()
# tf.global_variables_initializer().run()
with tf.variable_scope("", reuse = True):
# 在计算图g2中,变量值应该为1,所以输出为【1.】
print(sess.run(tf.get_variable("v")))
通过修改代码中标记的两个地方,就能够让代码直接运行。
# tf.global_variables_initializer().run()
这个地方如果按照书中编写的,新版本中会给出警告如下,修改为上述代码便能够免除警告