TensorFlow基本介绍

来源:互联网 发布:java 线程 编辑:程序博客网 时间:2024/06/03 17:22

1.TensorFlow简介
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow可被用于语音识别或图像识别等多项机器深度学习领域

2.TensorFlow架构
通过这三层架构将数据封装起来
Client < === > Master < === > Worker
Client:Session准备
Constant、placeholder、Variable、Tensor(多维数组)、Operate(各种操作)等声明并构建成Graph,通过session.run提交到master
Master:接收Graph,通过计算dependences, node placement 算法分解,将任务分发给worker
Worker(CPU、GPU0、GPU1。。。):执行subgraph(子图)
Kernel函数(CPU、GPU函数)

3.代码架构
Contrib:优化,视频处理
Core:C++的关键代码
Models:图像识别的例子
Python:Python封装的所有程序
Tensorboard:图形界面,方便进行调试
Tool:一些工具,比如docker、swap

Core(C++):
TF_Status\TF_library
Commom_runtime:底层重要的基础函数
Distributed_runtime:分布式处理,比如graph、master处理
Framework:op的定义,tensor的定义等等

4.数据格式(Protobuf)
基本上都是靠Protobuf来实现的
Reader_base.proto定义了各种插槽的位置和数据类型

Tersor.proto
定义了数据类型 DataType dtype =1
版本号:init32 version_number =3
Bytes tensor_content = 4

5.graph.proto
Message NodeDef节点的定义
Python graph === Protobufer === tf.session.run()