1.实现和训练深度学习算法为什么要使用Tensorflow?
Tensor=张量=容器,flow=流(我把它理解成数据流)
https://zhuanlan.zhihu.com/p/28234370(tensorflow 为何方圣物?)
这篇写的很好懂,想知道什么是Tensorflow看它。
算法的本质就是数学模型,说白了就是一堆数学公式。你想用计算机来实现算法,其实就是想他帮你解方程。
将做饭与之类比一下:我们很久很久之前做饭,要打猎、砍柴、生火等等(手工解方程);然后我们发明了煤气灶,这样我们就只用专注于炒菜(Tensorflow实现深度学习算法);现在我们发现煤气灶有些缺点,不如要自己换煤气罐不方便、不安全,然后我们就把煤气灶和其他能弥补它对应缺点的东西结合和改进,使用天然气灶(Tensorflow+Kubernetes)[今天突然觉得这个例子不太贴切,容我再思考一下]
附上tensorflow的使用方式:
将计算流程表示成图;
通过Sessions来执行图计算;
将数据表示为tensors;
使用Variables来保持状态信息;
分别使用feeds和fetches来填充数据和抓取任意的操作结果;
TF主要概念介绍:http://blog.csdn.net/stdcoutzyx/article/details/51645396(棒!)
2.什么是分布式Tensorflow?
随着设计的模型越来越复杂,模型参数越来越多,越来越大, 大到什么程度?多到什么程度? 多参数的个数上百亿个, 训练的数据多到按TB级别来衡量。大家知道每次计算一轮,都要计算梯度,更新参数。 当参数的量级上升到百亿量级甚至更大之后, 参数的更新的性能都是问题。 如果是单机16个GPU, 一个step最多也是处理16个batch, 这对于上TB级别的数据来说,不知道要训练到什么时候。于是就有了分布式的深度学习训练方法,或者说框架
tensorflow的分布式有in-graph和between-gragh两种架构模式
in-graph模式和between-graph模式都支持同步和异步更新:
在同步更新的时候, 每次梯度更新,要等所有分发出去的数据计算完成后,返回回来结果之后,把梯度累加算了均值之后, 再更新参数。 这样的好处是loss的下降比较稳定, 但是这个的坏处也很明显, 处理的速度取决于最慢的那个分片计算的时间。
在异步更新的时候, 所有的计算节点,各自算自己的, 更新参数也是自己更新自己计算的结果, 这样的优点就是计算速度快, 计算资源能得到充分利用,但是缺点是loss的下降不稳定, 抖动大。
在数据量小的情况下, 各个节点的计算能力比较均衡的情况下, 推荐使用同步模式;数据量很大,各个机器的计算性能掺差不齐的情况下,推荐使用异步的方式。
PS结点和worker结点?
ps节点就是paramter server的缩写, 主要是保存和更新参数的节点, worker节点主要是负责计算的节点。
参考:http://www.tensorflow123.cn/baihuatfdistribute.html(白话tensorflow分布式部署和开发)
3. Kubernetes是什么?为什么要在它上面部署Tensorflow?
https://baijiahao.baidu.com/s?id=1577264677500576534&wfr=spider&for=pc
kubernetes是google开源的容器集群管理系统(大管家),提供应用部署、维护、扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用
4.容器技术?
容器与虚拟机拥有着类似的使命:对应用程序及其关联性进行隔离,从而构建起一套能够随处运行的自容纳单元。此外,容器与虚拟机还摆脱了对物理硬件的需求,允许我们更为高效地使用计算资源,从而提升能源效率与成本效益。
软件容器带来的优势也类似。你不必传送整个操作系统和软件,只需将你的代码和依赖包打包至可以随处运行的容器即可。
容器比如docker,容器的集群:多个容器;为了管理所有这些容器,你需要另一套专用软件,比如Kubernetes
参考:容器是什么鬼?https://news.cnblogs.com/n/561175/
参考:http://blog.csdn.net/wh211212/article/details/53535881?locationNum=4&fps=1
5.容器集群?
容器集群是将多台物理机抽象为逻辑上单一调度实体的技术,为 容器化的应用 提供资源调度、服务发现、弹性伸缩、负载均衡等功能,同时监控和管理整个服务器集群,提供高质量、不间断的应用服务。
6.K8s架构
详细架构参考:http://blog.csdn.net/jincm13/article/details/50886029
基本概念:https://www.cnblogs.com/chris-cp/p/5766153.html