第三篇 提高篇
终于学完基础篇和实战篇了,相信读者已经掌握了先阅读论文了解原理,然后复现模型、调整模型,最后用自己的数据训练模型的一整套方法。下面我们进入提高篇,提高篇主要着力于在训练集数据量极大、网络模型极大(也就是参数极多)的情况下,我们应该采用什么样的分布式架构设计,以及如何配合Kubernetes、Spark等工具来做训练。
除此之外,还介绍几个TensorFlow非常有潜力的新特性,如线性代数编译框架XLA、调试工具Debugger、TensorFlow在移动端上的应用、生产环境工具Serving、动态计算图工具Flod等。最后介绍一些机器学习的评测体系。
TensorFlow本身是一把非常好用的锤子,基础篇介绍了锤子的结构,实战篇我们学会了用锤子砸核桃的动作,如果砸的进度非常慢怎么办?用分布式并行,配合分布式集群的管理Kubernetes。如果核桃特别多(训练数据非常多)得无法存储怎么办?用Spark作为访问分布式文件系统上数据的方式。如何优化计算图本身呢?用XLA框架。砸得不对怎么调试呢?用Debugger。如果在手掌上(资源有限的移动端)砸核桃怎么办?有一天要登台表演砸核桃,是不是应该多准备几个砸的姿势(生产环境工具Serving)?砸得好不好如何来评价(机器学习的评测体系)呢?
相信通过对这些内容的学习,读者会对TensorFlow框架的各个方面有更深入的了解。让我们快开始吧,我曾用这篇中的知识面试过很多人,学懂这些知识可能有机会“秒杀”面试官。