人工智能AI培训_TensorFlow入门基础
发布时间:
2019-05-21 14:25:02
人工智能AI培训_TensorFlow入门基础
1.TensorFlow概述
TensorFlow是谷歌开源的第二代用于数字计算的软件库。它可以很好的支持深度学习的各种算法,但它的应用不局限于深度学习,可以支持多种计算平台,系统稳定性较高。
TensorFlow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究。
TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Application Programming Interface, API)
2.TensorFlow特点
灵活可扩展:TensorFlow在不同计算机上运行:小到智能手机,大到计算机集群都能扩展,可以立刻生成你的训练模型。
多语言:支持C++,Python语言。
GPU:虽然TensorFlow在大型计算机集群的并行处理中,运行性能略低于CNTK,但是在个人机器使用场景中,会根据机器配置自动选择CPU或GPU,更加友好与智能。
多平台:TensorFlow生成的模型,可以满足更多使用者的需求。适用于Mac,Linux,Windows系统上开发。满足开箱即用的模型使用概念。
运算能力强:利用了DAG图创建工作流图,优化了计算过程。
分布式:
目前原生支持的分布式深度学习框架不多,只有 TensorFlow、CNTK、DeepLearning4J、MXNet 等。在单 GPU 的条件下,绝大多数深度学习框架都依赖于 cuDNN,因此只要硬件计算能力或者内存分配差异不大,最终训练速度不会相差太大。
但是对于大规模深度学习来说,巨大的数据量使得单机很难在有限的时间完成训练。而TensorFlow支持分布式训练。
TensorFlow 的设计对不同设备间的通信优化得不是很好,其单机的 reduction 只能用 CPU 处理,分布式的通信使用基于 socket 的 RPC,而不是速度更快的 RDMA,所以其分布式性能可能还没有达到最优。
3.TensorFlow应用场景
- 自动驾驶小车
- 生成音乐
- 图像识别
- 语音识别
- 语言模型
- 人体行为识别
- 定理证明
- 拿来玩马里奥赛车…
4.TensorFlow组成
TensorFlow是由Tensor+Flow组成,Tensor即为张量,Flow为流动,名字的含义就是张量在流动
5.TensorFlow计算过程
TensorFlow是一个通过计算图的形式来表述计算的编程系统,是以张量(tensor)在计算图(graph)上流动(flow)的方式实现和执行机器学习/深度学习算法的框架。计算过程如下:
- 构建计算图:可以理解为前端工作,定义一个操作的集合,根据数据流,组织为有向无环图。操作包含:初始化、各种加乘、读取、赋值、网络前向反馈、计算loss、梯度反向传播等等。
- 执行:可以理解为后端。在一个指定的gpu或是cpu上,通过Session.run()调度,运行计算图(C++)。一般是循环反复执行。
- 使用有向图的节点和边共同描述数学计算。graph中的nodes代表数学操作,也可以表示数据输入输出的端点。边表示节点之间的关系,传递操作之间互相使用的多位数组(tensors),tensor在graph中流动——这也就是TensorFlow名字的由来。一旦节点相连的边传来了数据流,节点就被分配到计算设备上异步的(节点间)、并行的(节点内)执行。
6.TensorFlow架构
TensorFlow的内核引擎使用C++实现的,效率是很高的。TensorFlow的内核封装实现了NN、CNN等基本机器学习算法。
前端应用层支持Python或C++,一般用Python(AI领域第一编程语言)。
在应用层,如果使用了其他的Python耗时操作(如数据预处理等),可能效率会比较低,但这不是TensorFlow造成的。
7.TensorFlow安装
推荐使用pycharm + anaconda,安装过程大家可以自行查询
8.TensorFlow入门例子
'''
1.引入tensorflow
2.定义常量、变量
3.创建Session会话
4.调用Session中的run()方法来运行,得出结果
5.关闭seession
'''
#引入tensorflow
import tensorflow as tf
#定义常量
hello = tf.constant("hello,tensorflow")
a = tf.constant(10)
b = tf.constant(20)
with tf.Session() as sess:
print(sess.run(hello))
print(sess.run(a + b))
上一篇:
PS教程_PS文字排版设计教学
下一篇:
使用filter-policy控制路由可达性