TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组Flow(流)意味着基于数据流图的计算TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。Tensorflow自推出以来,广泛应用于图像识别语音识别自然语言处理

1.Tensorflow基本概念

1.1 Tensorflow系统架构

Tensorflow系统架构自底向上可分为设备层和网络层数据操作层图计算层API层应用层等。如下图所示:

这里写图片描述

1.2 Tensorflow设计理念

(1)将图的定义和图的运行完全分开。 Tensorflow采用的是符号式编程,涉及到很多的嵌入和优化,理解和调试较为复杂,但运行速度有所提升。

符号式计算一般先是定义各种变量然后建立一个数据流图在数据流图中规定各个变量直接的计算关系,最后需要对数据流图进行编译,但只有把需要运算的输入放进去之后,才能在整个模型中形成数据流,从而形成输出值。

(2)Tensorflow中涉及的运算都要放在图中,而图的运行只发生在会话(session)中。 开启会话后,就可以用数据去填充节点了,会话关闭后,就不能进行计算了。下面是Tensorflow的一个简单案例,包含创建图创建会话计算关闭会话等流程。

# -*- coding: utf-8 -*-
"""
Created on Tue May 30 21:58:45 2017

@author: zch
"""

import tensorflow as tf

#创建图
a = tf.constant([1.0,2.0])
b = tf.constant([3.0,4.0])
c = a * b

#创建会话
sess = tf.Session()

#执行矩阵计算
print(sess.run(c))

#关闭会话
sess.close()

1.3 Tensorflow编程模型

Tensorflow是用数据流图来做计算的,因此我们需要先创建一个数据流图,典型的数据流图如下图所示:

这里写图片描述

Tensorflow的数据流图是由节点(node)和(edge)组成的有向无环图(directed acyline graph,DAG)。其中,Tensor(张量)代表数据流图中的Flow(流动)代表数据流图中节点的操作

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐