zoukankan      html  css  js  c++  java
  • tensorflow 基本概念回顾

    https://zhuanlan.zhihu.com/p/46881906

    TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。2015年它由Google发布并宣布开源。

    它的名字来源于本身的工作原理,Tensor(张量)意味着一个N维的数组,Flow(流)就是流动。Tensorflow的运行过程就是张量在数据流图中流动的过程。

    那么,什么是数据流图(Data Flow Graph)?

    它由点(node)和边(edge)组成。

    其中,节点通常以圆、椭圆或方框表示,代表对数据的运算或某种操作。边是节点之间的连接,用带箭头的线表示,指向节点的边表示输入,从节点引出的边表示输出。输入可以是来自其他数据流图,也可以表示文件读取、用户输入。所以在本质上,TensorFlow的数据流图就是一系列链接在一起的函数构成,每个函数都会输出若干个值(0个或多个),以供其它函数使用。

    除了上面两个概念,以下几个也很重要:

    图(Graph):图描述了计算的过程,TensorFlow使用图来表示计算任务。

    张量(Tensor):TensorFlow使用tensor表示数据。每个Tensor就是一个多维的数组。

    操作(op):operation的缩写,一个op就是某节点上的一个操作,输入0个或多个Tensor,执行计算,产生输出0个或多个Tensor。

    会话(Session):图必须在称之为“会话”的上下文中执行。会话将图的op分发到诸如CPU或GPU之类的设备上执行。

    变量(Variable):运行过程中可以被改变,用于维护状态。

    import tensorflow as tf
    # 创建两个常量节点
    node1 = tf.constant("hello")
    node2 = tf.constant("world")
    # 创建一个 node3 节点,对上面两个节点执行 + 操作
    node3 = node1 + node2
    # 打印一下 adder 节点
    print(node3)
    # 打印 adder 运行后的结果
    sess = tf.Session()
    print(sess.run(node3))
    

      

    输出:

    Tensor("add:0", shape=(), dtype=string)
    b'helloworld'

    结合上面的代码,现在我们总结一下TensorFlow的工作流程:

    (1)构建一个计算图,并初始化一些节点,比如我们的node1和node2。这个时候,并没有开始计算。

    (2)创建一个会话。这才是图计算开始的地方,也就是说,仅仅构建一个图,这些图不会自动执行计算操作,而是还要显式提交到一个会话去执行,也就是说,它的执行,是滞后的。

    (3)在会话中运行图的计算。把编译通过的合法计算流图传递给会话,这时张量(tensor)才真正“流动(flow)”起来。

    (4)关闭会话。当整个图无需再计算时,则关闭会话,以回收系统资源。

  • 相关阅读:
    JSP——useBean
    jsp 几种跳转
    jsp MIME
    T-SQL之触发器(下)
    T-SQL之触发器
    T-SQL之存储过程
    T-SQL之游标
    T-SQL之自定义函数
    T-SQL之函数
    T-SQL复习心得(1)变量
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/13950032.html
Copyright © 2011-2022 走看看