Tensorflow入门篇1

导入tensorflow模块

import tensorflow as tf

计算图:

x = tf.Variable(3,name="x")
y = tf.Variable(4,name="y")
f = x+y

设置session:

with tf.Session() as sess:
    x.initializer.run()#tf.get_default_session().run(x.initializer)
    y.initializer.run()
    result = f.eval()#tf.get_default_session().run(f)
    #自动关闭session 
print(result)
#自动初始化变量的方法
init = tf.global_variables_initializer()
with tf.Session() as sess:
    init.run()#并没有真正初始化,而是在run的时候才初始化
    result = f.eval()
print(result)
#简洁的运行图的方法:
init = tf.global_variables_initializer()
sess = tf.InteractiveSession()
init.run()
result = f.eval()
print(result)
sess.close()
#图的管理
graph = tf.Graph()
with graph.as_default():
    x2 = tf.Variable(2)
    print(x2.graph is tf.get_default_graph())#在with语句中才是默认图
x2.graph is tf.get_default_graph()
x2.graph is graph
#测试的时候会重复运行一段代码,如果不重新设置默认图的话,默认图会有很多冗余的节点,暂用资源,一种重新设置的方法是重新设置jupyter kernel;另一种方法是运行代码
tf.reset_default_graph()
#节点的生命周期
#当我们需要计算一个节点的时候,会自动判断该节点所依靠的其他节点
w = tf.constant(3)
x = w + 3
y = x + 5
z = y * 2
with tf.Session() as sess:
    print(y.eval())#执行这两句代码的时候需要两次运行计算x与w
    print(z.eval())
#一个变量值的生命周期是从initializer开始,到session结束,考虑高效率计算y与z,将y与z的计算放在同一个图中
with tf.Session() as sess:
    y_val,z_val = sess.run([y,z])
    print(y_val)
    print(z_val)

单线程中,多个session之间不共享信息,即使不同session在计算同一个图;
多线程中,变量信息存放在服务器中,多session可以共享变量

猜你喜欢

转载自blog.csdn.net/weixin_36926779/article/details/80171204