💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
TensorFlow 1.0 变化 ============ (cc) 开源研习社 CC共享协议下 版权所有 ![](https://box.kancloud.cn/a67d5ecc44b3d9c30531aa1b05d36c5b_352x300.png) 官网: http://tensorflow.org/ Github: https://github.com/tensorflow/tensorflow/ ![](https://box.kancloud.cn/d46013db493f471d137b552c809b8660_813x401.png) [TOC] ### 1. 更快的速度,引入了XLA,最高提升58倍训练速度 --------------------------------- XLA —— 全称 Accelerated Linear Algebra,意为加速线性代数,是一个针对 TensorFlow 中线性代数运算的试验性质编译器。它通过生成既能运行于 GPU、又能在 CPU 运行的机器代码,来加速数学计算。目前, XLA 只支持英伟达 GPU,但这与当下机器学习应用对 GPU 支持的现状是一致的。 TensorFlow 1.0 相比于 0.12版本: 运行 Inception v3模型, 8GPU硬件下,1.0版比0.12版本快7.3倍 分布式64GPU情况下,1.0版比0.12版本快58倍 ![](https://box.kancloud.cn/9cf027d2cf7a34c1b12250500a68d465_640x359.png) ![](https://box.kancloud.cn/0acdf9781f95369ff2ad4f786c876b5e_640x359.png) 详细情况: https://www.tensorflow.org/performance/xla XLA主要包括两种使用方式:JIT(Just in time)能够自动将Graph中的部分子图通过XLA融合某些操作来减少内存需求提高执行速度;AOT(Ahead of time)可以提前将Graph转换为可以执行的源码,减少生成的可执行文件的大小,减少运行的时间消耗,一个很明显的应用场景是模型在移动设备上的Inference优化。 ### 2. XLA使 TensorFlow 在移动设备上运行 ---------------------------------------------- XLA 提升了 TensorFlow 的移动性。现有的、未经调整的 TensorFlow 程序只需创建一个后端即可在新硬件平台上运行。 ![](https://box.kancloud.cn/7c04baa8b781a9214ebb7b58de7740e8_640x357.png) 这么做的意义非同寻常 ——此前, IBM 就为它的 PowerAI 机器学习硬件解决方案加入了对 TensorFlow 的支持,前者由 Power8 CPU 和 GPU 混合运行。 ![](https://box.kancloud.cn/7edf9c53d023d62aba2df0c06179ad7b_859x464.png) TensorFlow的工程师已经缩减了它的整体内存占用和 APP 的存储空间占用。这些优化对各类硬件运行环境都有好处,但对于移动平台尤其重要。此前的 TensorFlow 版本已经加入了对安卓、iOS 和 Raspberry Pi 硬件平台的支持,使得 TensorFlow 能在这类设备上处理诸如图像分类之类的任务。 创造出能在普通智能手机上运行的机器学习模型,而无需 24 小时每时每刻的云端支持,将会孵化出一系列新型应用。这是 TensorFlow 1.0 的野心之一。 TF1.0引入了新版的安卓Demo。包含物体识别、图像标记应用。 ### 3. 引入更高级别API,增强灵活性和兼容性 ------------------------------------------------- 引入了抽象性、封装性更高级别的API: tf.layers、tf.metrics 和 tf.losses 模块. 同时引入了 tf.keras 模块,加强与 Keras 的兼容性 ![](https://box.kancloud.cn/9744f12d36d9fde1a7d024d510be2cf5_640x358.jpg) ### 4. 强化Python API,更适用于生产环境 ----------------------------------------------- 加强Python API版本的稳定性,从0.1x升级后大部分代码兼容,更加适用于生产环境部署。 在Python API封装上, 抽象层更加接近 NumPy ![](https://box.kancloud.cn/2da71090affd648b6a985b763407b4ee_640x358.png) TensorFlow在Google内部项目应用的增长也十分迅速:在Google多个产品都有应用如:Gmail,Google Play Recommendation, Search, Translate, Map等等;有将近100多project和paper使用TensorFlow做相关工作。 TF强化其最大的特点: 从 研究机构 到 工业应用 的全覆盖框架。研究机构和开发用的技术,同样可用于实际大规模服务器部署和移动端部署。 ![](https://box.kancloud.cn/37cc0471334c9dd0dc3f14ba08ee1ba0_714x254.png) 科学家 和 工程师 在同一平台下进行科学研究 和 实际工程应用。 ![](https://box.kancloud.cn/293fd65401a851dd5997d537345ab21f_792x380.png) ### 5. 引入了TF调试器(TF Debuger) ----------------------------------------- TensorFlow Debugger (tfdbg) 帮助开发者更好的调试 ### 4. 加入实验性的Java API 、Go API ----------------------------------------------- 引入了对Java和Go语言的API,但支持不全,最全的还是Python API ### 5. 支持与 Python 3 兼容的 Docker 镜像,引入 TensorFlow Serving 服务 ------------------------------------------------ 完善的Docker支持 ![](https://box.kancloud.cn/3fb4cdf4170ecfb0e072fdd5c21b4c2b_640x360.png) 把训练好的模型提供生产环境可用的服务,通常有以下几个需求: 长期稳定服务,低时延 支持多个模型服务 支持同一模型多版本 保证计算时耗尽量小以保证一些实时性需求 mini-batching的支持,以提高效率 TensorFlow Serving的设计就是为了解决这些需求,而且TensorFlow基于gRPC,支持多种语言。 ### 6. 生态融合 ----------------- TensorFlow支持以下多种技术的协作和底层存储 ![](https://box.kancloud.cn/75c3ace88b03beabf47a6d128b69f7ff_640x359.png) ![](https://box.kancloud.cn/19df26f5bbfd37abd5b10680543e7dad_640x360.png) ![](https://box.kancloud.cn/5acee414a580146746d10bd2f332dea2_640x361.png) ### 7. 升级到 1.0 版本 ----------------------- TF框架提供了 tf_upgrade.py 脚本来讲代码升级,但是并不完美。 建议手工调整或运行不同版本。 ~~~ $ python tf_upgrade.py --infile InputFile --outfile OutputFile ~~~ 详细指南: https://www.tensorflow.org/install/migration ### 8. 更多模型 ---------------- TF 引入更多的模型,原来在主仓库的模型现在迁移到新的单独的仓库了: https://github.com/tensorflow/models ### 附录:版本历史 ![](https://box.kancloud.cn/e08566efb57ffddc174d92a0f28bce61_640x359.png) ![](https://box.kancloud.cn/9955ea8d65d92f0ce67ebf8f013cb02e_640x327.png)