TensorFlow产生的历史
- 1980s:感知机与特征工程
- 计算力低,数据量小
- 1990s:神经网络在图像和语音领域发力
- MINIST:手写字体识别,机器学习界的Hello Word
- 2012-:算力和数据增长推动深度学习的繁荣发展
TensorFlow与Jeff Dean
TensorFlow之父——Jeff Dean
TensorFlow前世今生
- 第一代大规模分布式深度学习框架:Google DistBelief(2012年)
- paper:Large Scale DistBelief Deep Network
- 第二代大规模分布式深度学习框架(开源):Google TensorFlow(2015年)
- 灵活通用的深度学习库
- 端云结合的人工智能引擎
- 高性能的基础平台软件
- 跨平台的机器学习系统
TensorFlow的应用场景
- 其中AlphaGO Zero是纯强化学习,没有输入任何棋谱训练
- TPU比GPU在深度学习的训练方面更有优势
- GPU是为大量的浮点数运算而设计的一种硬件
- 可以任务TPU是专门为TensorFlow设计的硬件
- 现在衍生出专门的AI芯片
TensorFlow的发展现状
TensorFlow项目发展
- Initial Release
- GPU&more:支持GPU,支持更多平台
- TensorBoard:可视化工具,数据流图方式展现模型
- 1.0 Release(第一个正式版):XLA(优化数据流图执行效率), New APIs(增加很多新的API),投入商业生产环境
- High-Level APIs:包括Keras、TFLearn等
- tf.keras、tf.data:处理数据的模块,有效代替Pandas
- TF Lite:轻量型,移动端应用
- Eager:动态图执行模式
- 静态数据流图:提升运行时效率,难调试
- Eager:支持Python原生语言,降低使用门槛
TensorFlow多语言接口
搭建TensorFlow开发环境
TensorFlow支持的硬件平台
- 支持最简单的中央处理器CPU(Central Processing Unit ),使得PC机、笔记本、服务器均可使用TensorFlow
- 高性能服务器、高性能桌面环境支持图形处理器GPU(Graphics Processing Unit),一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器
- 张量处理单元即TPU(Tensor Processing Unit),一款为机器学习而定制的芯片,经过了专门深度机器学习方面的训练,有更高效能(每瓦计算能力)
TensorFlow支持的操作系统
- Ubuntu 16.04 or later
- Windows 7 or later
- MacOS 10.12.6(Sierra) or later
- Mac的GPU现在已经不再维护,兼容性可能不太好
- 建议在英伟达的GPU或TPU上使用
- Raspbian 9.0 or later(树莓派)
安装TensorFlow
【TensorFlow】Anaconda中安装TensorFlow
在交互环境中使用TensorFlow
- jupyter notebook
在容器中使用TensorFlow
TensorFlow模块与基础架构
TensorFlow模块与APIs
- Keras是一个比TensorFlow还要早的开源项目,最早对接Torch这种开源框架;
- Estimator由TensorFlow团队推出,从模型设计角度很适用,提供了模型估算、模型定义、模型指标度量的接口;
- Layers:封装好的神经网络层的接口,诸如卷积、池化……
- Datasets:数据处理、数据输入输出;
- Metrics:获取训练过程各种的指标;
TensorFlow架构
- 模块化,分层次
- 高层次的模块调用低层次的模块,低层次以接口的方式向上提供调用的逻辑
- 核函数:操作的实现
极客时间