TensorFlow介绍--TensorFlow框架介绍

TensorFlow 简介
• TensorFlow是目前最为流行的深度学习框架,是人工智能领域第一主要工具。
• TensorFlow的迭代版本共有0.1,1.0,和2.0三个版本,本章主要针对最新的2.0版本进行讲解和学习。
• TensorFlow 是一个用于机器学习和深度学习的端到端开源平台。

前世今生:
诞生的大环境
• 15年9月发布0.1版本;17年2月发布1.0版本;19年3月发布2.0版本。
• 15年同类型框架:
• Ski-learn: Machine Learning, 不支持GPU;
• Caffe: 第一个面向深度学习的框架,但不支持自动求导;
• Keras: 只提供API接口;
• Torch: Lua语言;
• Teano: 开发调试难。
当下市场环境
• 当下同类型框架:
• Caffe: Facebook
• Caffe2: PyTorch(最新版本的Caffe2 作为PyTorch的C++后端已经并入到PyTorch里去)。
• Torch–PyTorch。PyTorch当下非常流行的框架,集合了Torch和Caffe2,Facebook主推。
• Teano: Google推出 Tensorflow1.0 ----Tensorflow2.0。
V1.0市场占有率
• 截止到TensorFlow1.1.3版本:
• Github中TensorFlow有大约121,372的store:
在这里插入图片描述
• PyTorch有25,181的store:
在这里插入图片描述
流行框架得分
TensorFlow介绍--TensorFlow框架介绍_第1张图片
V1.0与PyTorch1.0对比
• 与Tensorflow1.0版本同一时期PyTorch1.0版本发布。
• Tensorflow1.0与PyTorch1.0版本的对比:
Tensorflow1.0:
TensorFlow介绍--TensorFlow框架介绍_第2张图片
PyTorch1.0:
TensorFlow介绍--TensorFlow框架介绍_第3张图片
• PyTorch: 非常接近于python的风格,更好理解
• TensorFlow1.0里在创建了Tensor之后,不能直接返回c。 而是需要创建session会话机制,包含graph的概念在里面,而且需要session.run 才能运行。 这种风格更像是一种硬件编程语言VHDL。
• 跟pytorch等一些简单的相比,TensorFlow1.0 徒增了以上概念,用户使用起来非常的困扰。
V1.0的弊端
• TensorFlow1.0里在创建了Tensor之后,不能直接返回结果。 而是需要创建session会话机制,包含graph的概念在里面,而且需要session.run 才能运行。 这种风格更像是一种硬件编程语言VHDL。
• 与PyTorch等一些简单的框架相比,TensorFlow1.0 徒增了以上概念,用户使用起来非常的困扰。
• TensorFlow1.0调试困难,API混乱,入门困难。入了门使用起来依旧困难,导致很多研究人员转向了PyTorch。
V2.0 coming
• TF+Keras:
最大的特性(Easy to use): 去掉了graph 和session机制。变的像Python,PyTorch一样所见即所得。
• 主要改进点:
• Session.run:图和会话机制;
• Tf.control_dependencies:实时控制的概念;
• Tf.global_variables_initializer;
• Tf.cond:分支控制的概念原本可以通过python中if,else等语句来完成;
• Tf.while_loop 。
V2.0
• 对比发现跟PyTorch的风格很相似:
TensorFlow介绍--TensorFlow框架介绍_第4张图片

忘掉TensorFlow1.0
• TensorFlow1.0会将大量的时间花费在这些冗余的概念编写上,而忽略对深度学习算法的研究。诸如以下所列出的抽象的概念将一去不复返。
• 计算图Graph
• 会话Session
• 变量管理Variable Scope与共享reuse
• Define-and-run
• 本课程假设你对TensorFlow一无所知,即使知道一些TensorFlow1.0中的概念,但是在2.0中基本上用不到。因此今后不需要我们对TensorFlow1.0再进行学习和了解。

TensorFlow2.0简介
• TensorFlow2.0包括了TensorFlow核心库,JavaScript, Lite, Extended。构成了TensorFlow的一个完整的生态系统。
• TensorFlow核心库:
• 使初学者和专家可以轻松的创建机器学习模型。
• TensorFlow的高级API基于Keras API标准,用于定义和训练神经网络。
• Keras通过用户友好的API实现快速原型设计,最先进的研究和生产。

V2.0简介:
For JavaScript
• TensorFlow.js:是一个用于在JavaScript中开发和训练ML模型,并在浏览器或Node.js上部署的库。
• 运行现有模型:使用官方TensorFlow.js模型或者转换Python模型。
• 重新训练现有模型:使用Transfer Learning自定义模型。
• 使用JavaScript开发ML:使用灵活直观的API直接在JavaScript中构建和训练模型,TensorFlow.js。
TensorFlow Lite
• TensorFlow Lite:是一个用于设备推理的开源深度学习框架。它可以满足在移动和物联网设备上部署机器学习模型。
• 选择一个模型:选择新模型或者重新训练现有模型
• 兑换:使用TensorFlow Lite转换器将TensorFlow模型转换为压缩的平缓冲区
• 部署:获取压缩的.tflite文件并将其加载到移动或嵌入式设备中。
• 优化:通过将32位浮点数转换为更高效的8位整数或在GPU上运行来进行量化。
TensorFlow Extended
• TensorFlow Extended (TFX):是用于部署生产ML管道的端到端平台,当训练好的模型准备从研究转移到生产时,使用TFX创建和管理生产管道。
• TensorFlow数据验证:TFDV可帮助开发人员大规模了解,验证和监控其ML数据。
• TensorFlow变换:将数据预处理成合适的格式。
• TensorFlow模型分析:TFMA使开发人员能够计算和可视化模型的评估指标。
• TensorFlow服务:轻松部署新算法和实验,同时保持相同的服务器架构和API。

为什么使用TensorFlow
• TensorFlow最为当下最流行的框架主要因为一下几个优势:
• 支持GPU加速
• 支持自动求导
• 深度学习API

使用TensorFlow:
GPU加速
• 支持GPU加速:对矩阵的加减乘除有一个并行的运算加速。
TensorFlow介绍--TensorFlow框架介绍_第5张图片
自动求导
• TensorFlow框架的另一个优势就是自动求导:
TensorFlow介绍--TensorFlow框架介绍_第6张图片
深度学习API
• TensorFlow框架提供大量深度学习API:
TensorFlow介绍--TensorFlow框架介绍_第7张图片
• 可以非常方便的通过调用tensorflow 提供的接口来完成神经网络的搭建,不需要我们自己去实现每一层。并且可以使用tensorflow自动求导的工具来求得每一个权值的梯度。同时GPU的加速功能同样为大数据的运算提供了有力支持。

你可能感兴趣的:(TensorFlow介绍--TensorFlow框架介绍)