美文网首页深入理解tensorflowTensorflow
TensorFlow之计算图、张量和会话

TensorFlow之计算图、张量和会话

作者: xhades | 来源:发表于2017-12-05 18:46 被阅读101次

    TensorFlow中最重要的两个概念:TensorFlow
    Tensor就是张量,可以被简单地理解为多维数组;
    Flow中文翻译成“流”,直观表达张量间通过计算相互转化的过程;


    计算图

    TensorFlow(以下简称为TF)中的计算以图数据流的方式表示,一个图包含一系列表示计算单元的操作对象,以及在图中流动的数据单元以tensor对象表现。
    一些常用方法:

    • tf.get_default_graph() 获取当前默认的计算图
    • tf.Graph()生成新的计算图
    • tf.Graph().device()指定运算设备(CPU、GPU)

    张量(Tensor

    TF程序中,所有的数据都通过张量(tensor)的形式来表示,张量可以简单的理解为多维数组。零阶张量表示标量(scalar)也就是一个数;第一阶张量为向量(vector)也就是一维数组;第n阶张量可以理解为一个n维数组。

    但TF中的张量其实并没有真正保存数字,它保存的是如何得到这些数字的计算过程。

    In [5]: a = tf.constant([1,2], name="a")
    
    In [6]: b = tf.constant([3,4], name="b")
    
    In [7]: result = tf.add(a, b)
    
    In [8]: print(result)
    Tensor("Add:0", shape=(2,), dtype=int32)
    

    从上面的代码可以看出TF中的张量和Numpy中数组的不同,TF计算的结果保存了三个属性:名字(name)维度(shape)类型(type)

    • 名字
    • 维度
    • 类型

    会话(Session)

    引用官方文档的一段话:
    A Session object encapsulates the environment in which Operation objects are executed, and Tensor objects are evaluated.
    翻译过来即一个Session对象将操作节点op封装在一定的环境内运行,同时tensor对象将被计算求值。

    In [3]: # 创建一个会话
    
    In [4]: sess = tf.Session()
    
    In [5]: # 使用创建好的会话得到运算结果
    
    In [6]: sess.run(result)
    
    In [7]: # 关闭会话
    
    In [8]: sess.close()
    

    同时TF可以通过Python上下文管理器来使用会话,不需要显示关闭sess

    相关文章

      网友评论

        本文标题:TensorFlow之计算图、张量和会话

        本文链接:https://www.haomeiwen.com/subject/otaqixtx.html