tensorflow入门笔记2:计算图、张量、会话(session)

1.计算图

  • 用户不定义计算图时,系统会自动维护一个默认的计算图,tensorflow 会自动将定义的所有计算添加到默认的计算图
tf.get_default_graph() # 获取当前的默认图
  • 用户自己创建计算图,用with创建图指定为默认计算图后,下面的运算都在这个计算图内,变量为该计算图独有,不与其他计算图共享
g1 = tf.Graph()
with g1.as_default() :
  a=tf.get_variable("a",[2],initializer=tf.ones_initializer())
  b=tf.get_variable("b",[2],initializer=tf.zeros_initializer())
  • 获取某个变量的计算图,如变量a
a.graph()

2.张量

  • 张量只是引用了程序中的运算结果而不是一个真正的数组,张量保存的是运算结果的属性,而不是真正的数字
import tensorflow as tf 
a=tf.constant([1.0,2.0],name ="a") 
b=tf.constant([3.0,4.0],name ="b") 
result=a+b 
print(result) 
#输出 Tensor ("add:0",shape=(2,), dtype=float32)

add:0:由加法得来的第一个输出
shape=(2,):形状为2的数组,只有一个维度,注意不是2*1,
dtype=float32:元素类型为float32

要想获得result的真值需定义会话sess进行真正的运算
使用sess.run(result)
result.eval(session=sess)
sess为默认会话时result.eval()

3.会话(Session)

  • 定义会话
# 接上
with tf.Session() as sess :
  tf.initialize_all_variables() 
  print(sess.run(result))

#输出[ 4. 6.]
  • 指定sess为默认会话
sess = tf.Session()
with sess.as default():
  <with-block>

在定义计算时tensorflow会自动生成一个默认的计算图,如果没有特殊指定,定义的运算会自动加入这个计算图中。通过手动指定,会话也可以成为默认的(tensorflow不会自动生成默认的会话)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容