Tensorflow入门篇1

这篇博客介绍了TensorFlow的入门知识,包括如何导入模块,理解计算图的概念,并详细讲解了Session的使用。在单线程和多线程环境中,Session的变量共享特性在不同场景下的表现。
摘要由CSDN通过智能技术生成

导入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可以共享变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值