深度学习各类框架分析

Posted on 2019-10-08 23:16  Jonahmoon  阅读(380)  评论(0编辑  收藏  举报

 因为工程实践设计深度学习中的迁移学习,要部署GPU版本的caffe框架,在部署过程中遇到了很多问题,由此引发了我对各类深度学习框架特点的思考,虽然之前也或多或少接触过各类框架,但是从没有进行过细致的相互比较。目前深度学习框架主要有TensorFlow,Caffe,MXNet,Pytorch,Keras,paddlepaddle,DeepLearning4J,CNTK等。

  • 这些软件的开发者是怎么说服你(陌⽣⼈)成为他们的⽤户的?他们的⽬标都是盈利么?他们的⽬标
    都是赚取⽤户的现⾦么?还是别的?

    作为一名软件工程在读研究生,了解了各个深度学习框架的特点之后,结合所做项目的需求,自然而然选择出了最合适的学习框架。目前基本上所有开源的深度学习框架都是免费的,他们的目标不是短期的盈利,而是长远的利益。深度学习对大量数据的需求及其本身的复杂性仍然是其发展壮大路上的最大阻碍。而开源则意味着开放自己的源代码给别人查阅和使用,开发者可以将开源框架用在任何平台、任何领域里,只要有足够的数据支撑,它就可以抽象出这些数据的特征,而数据将是各个行业的门槛,谁掌握了大量数据,并能发现这些数据的价值,谁就能颠覆这个行业,谁就能吸引到最多最优秀的人才,这才是深度学习框架开发企业将其开源的背后逻辑。    

  • 这些软件是如何到你⼿⾥的(邮购,下载,互相拷⻉、在线使用……)

    我通过GitHub访问这些开源项目,并部署在本地。

  • 这些软件有Bug 么?⼜是如何更新新版本的?

    只要是软件就会有bug,但是目前我还没有遇到,深度学习框架的更新通过GitHub,或者在其官网发布最新版本。

  • 此类软件是什么时候开始出现的,同⼀类型的软件之间是如何竞争的? 发展趋势如何?

    深度学习框架在12年底逐渐出现在世人眼前,以Caffe为主要代表的第一代框架把神经网络进行了建模,以TensorFlow/MxNet/Caffe2为代表的第二代深度学习框架提供了复杂的算子图,以pyTorch, TensorFlow Eager,MxNet Gluon为主要代表的第三代框架开始支持动态模型、即使错误调试,更加的自由。这些框架各有各的特点,在稳定性,易用性,功能性,可移植性方面各有所长,从发展趋势来看,深度学习框架希望在灵活性和功能性上兼得,比如MxNet Gluon提供了Hybridize接口。

  • 列举你在使⽤上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特
    性么?

    软件是一种逻辑上的产品,他依托于包括硬件在内的环境,他和硬件都可以为某种功能的实现而设计,但是毫无疑问软件更加灵活,而硬件有可能更加高效,从我部署胜读学习框架的过程中,需要用到CUDA这种运算平台,而他是依托于NVIDIA显卡的,没有显卡则不能运行,这体现了软件的一致性这种本质特性,他不能独立存在。    

  • 你个⼈第⼀次⽤此类软件是什么时候,你当时是⼏年级,班主任叫什么?在哪⾥,什么状态,当时的
    软件是如何得到的(买的正版,盗版,下载?)

    我在大学三年级接触过深度学习框架,当时是从网上了解,并无使用。

  • 你是如何精通这类软件的?它给你什么好处,坏处?

    还没有精通,但是从已经接触到的各类开源项目来看,大大减少了我们使用深度学习训练的时间和编码成本。

  • 这种软件再过10年,20年还会存在么,为什么?

    我认为会存在,虽然深度学习框架连他第一个十年还有度过,但是深度学习已经表现出了他旺盛的生命力,期待未来愈加强大的框架你被开发出来。