ppchat-man之TensorFlow介绍

ppchat-man

  • 简介
  • 什么是TensorFlow
  • TensorFlow系统框架
  • TensorFlow的基本要素
  • TensorFlow的模型训练

简介

知识系统:python语言、TensorFlow框架

什么是TensorFlow

  1. 谷歌基于DisBelief进行研发的第二代人工机器人学习系统
  2. 用于语音识别或图像识别等多项机器学习和深度学习领域
  3. 将复杂的数据结构传输至人工智能神经网中进行分析和处理
  4. 支持CNN(全连接神经网络)、RNN(循环连接神经网络)和LSTM(长短时记忆单元)算法,是目前在Image,Speech和NLP最流行的深度神经网络模型

TensorFlow系统框架

ppchat-man之TensorFlow介绍_第1张图片
图一 TensorFlow框架
TensorFlow框架主要分为三大部分:第一部分是前端(Front End)的框架–负责提供TensorFlow的编程模型,构造计算图和管理session(会话)周期,开发人员可使用C++、python、Java等语言在后端的系统中所提供的API的基础上,根据自身需求来设立和开发所需要的模型,再对这个模型进行训练,以达到之后使用的目的;第二部分是C API;第三部分是后端执行操作系统(Exec System)–负责执行计算图,包括计算图的拆建,设备的分配或者子图的计算过程。
前端的client–基于TensorFlow的一个编程接口,主要是用来构建计算图,一般来说我们用python和TensorFlow语言要用到th.session这个方法来建立link,即客户端与后端系统运行时的通道,而且还会触发distributed menu的计算图执行过程,简单来说,在client做的操作会触发Distributed Runtime中的Distributed Master。
Distributed Runtime–分布式的操作,在运行中起到关键的作用,它是根据前端的tf.session的run所输入进来的参数从计算图中进行反行遍历,找到所依赖的最小子图,然后将这些方法进行切割或者裁剪的操作,使它变成一个更小的片段,再利用分布式基础进行处理。
Work Services–工作节点的服务,准确来说是一个执行部分TensorFlow图和内部RTC的一个工作站,因为我们在做TensorFlow给外部提供接口的时候他需要底层做分布式,走的是一个gRPC的一个协议,他也是通过Work Services进行调用的。
Kernel Implement–TensorFlow内核实现,其中含200多个TensorFlow运行时的标准操作,包括状态管理、控制流或者数组的一些操作。
Network Layer–网络层,因为TensorFlow分布式是基于RPC协议,或者我们进行相关的网络服务都要通过这个网络层来提供支持的。
Device Layer–设备层,因为我们在训练TensorFlow时,除了使用CPU训练外,我们还可以使用GPU训练。

TensorFlow的基本要素

  • 张量(Tensor)–TensorFlow最基本的要素
  • 图(Graph)–计算中的节点和操作
  • 会话(Session)–管理一个模型、函数和操作,从开始到结束的过程

张量(Tensor),在TensorFlow中,张量的维度被描述为“阶”,但是,张量的阶和矩阵的阶并不是同一个概念,张量的阶,是张量维度的一个数量描述。
如x=3为零阶张量(纯量);v=[1.1,2.2,3.3]为一阶张量(向量);t=[[1,2,3],[4,5,6],[7,8,9]]为二阶张量(矩阵);m=[[[2],[4],[6]],[[8],[10],[12]],[[14],[16],[18]]]为三阶张量(立方体)
图(Graph),代表模型的数据流,由ops和tensor组成,其中ops是操作,也就是节点,tensor是数据流,也就是边。算法都会表示成计算图(computation graphs),也称之为数据流图。我们可以把计算图看成一种有向图,张量就是通过各种操作在有向图中流动。
ppchat-man之TensorFlow介绍_第2张图片
图二 数据流图
会话(Session),在TensorFlow中,要想启动一个图的前提是要先创建一个会话,TensorFlow中所有对图的操作,都必须放在会话中执行。
ppchat-man之TensorFlow介绍_第3张图片
图三 hello的示范

TensorFlow的模型训练

ppchat-man之TensorFlow介绍_第4张图片
图四 TensorFlow的模型训练
需要注意的是:①数据集,因为每次训练的数据集是不同的,我们要保证:一、训练集和测试集要区分开,二、训练集尽可能要大,一般需要大批量的数据进行训练。②训练集和测试集的结构要尽可能保持一致

你可能感兴趣的:(聊天机器人,TensorFlow,深度学习,python)