首先tf1.的开启回话语句是这样的:
# 开启会话 with tf.Session() as sess: c_t_value = sess.run(c_t) print("c_t_value:\n", c_t_value)
现在对于tf2.的用户应该这样做:
# 开启会话 tf.compat.v1.disable_eager_execution() sess = tf.compat.v1.Session() c_t_value = sess.run(c_t) print("c_t_value:\n", c_t_value)
运行之后报这样的错:
RuntimeError: The Session graph is empty. Add operations to the graph before calling run()
问题产生的原因:
无法执行sess.run()的原因是tensorflow版本不同导致的,tensorflow版本2.0无法兼容版本1.0.
解决办法:
添加一句这个就会完美解决
tf.compat.v1.disable_eager_execution()
一个小的测试例子:
import tensorflow as tf import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' def tensorflow_demo(): tf.compat.v1.disable_eager_execution() #保证sess.run()能够正常运行 """ TensorFlow的基本结构 :return: """ # 原生python加法运算 a = 2 b = 3 c = a + b print("普通加法运算的结果:\n", c) # TensorFlow实现加法运算 a_t = tf.constant(2) b_t = tf.constant(3) c_t = a_t + b_t print("TensorFlow加法运算的结果:\n", c_t) # 开启会话 tf.compat.v1.disable_eager_execution() sess = tf.compat.v1.Session() c_t_value = sess.run(c_t) print("c_t_value:\n", c_t_value) return None if __name__ == "__main__": # 代码1:TensorFlow的基本结构 tensorflow_demo()