若干个深度学习框架的比较
Posted 互联网大数据处理技术与应用
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了若干个深度学习框架的比较相关的知识,希望对你有一定的参考价值。
...
Google、Microsoft、Facebook等各大公司都推出了深度学习开源框架,包括TensorFlow、Caffe、Keras、CNTK、Torch7、DeepLearning4等等。下面的表比较直观地列出了各个开源框架、机构及支持的语言。
可以看出各大框架基本都支持Python,大概也是由于Python在科学计算和数据挖掘领域广泛的各种库,涵盖了Web开发、数据可视化、数据预处理、数据库连接,甚至爬虫等典型应用,Python的生态环境不错。
在GitHub上关注度高的前三名是TensorFlow、Keras和Caffe。从国内关注看,下图是来自百度指数的周数值,就是每周的搜索量,显示出了tensorflow的关注度远高于其他。至于为什么图中会有三个突变的低谷,留给大家自己思考。
TensorFlow
TensorFlow可在桌面和移动设备上使用,同一份代码几乎不经过修改就轻松地部署到有任意数量CPU或GPU的PC、服务器或者移动设备上。
只要可以将计算表示成计算图的形式,就可以使用TensorFlow。TensorFlow和Spark的核心都是一个数据计算的流式图,Spark面向的是大规模的数据,支持SQL等操作,而TensorFlow主要面向内存足以装载模型参数的环境,这样可以最大化计算效率。TensorFlow也可以将计算图中的各个节点分配到不同的设备执行,充分利用硬件资源。
TensorBoard用于网络建模和性能的有效数据可视化,对于观察复杂的网络结构和监控长时间、大规模的训练很有帮助。
Keras
TensorFlow虽然强大,但是初学者并不容易上手。如果你想快速构建实验原型,验证某些算法或模型,这种情况Keras是不错的选择。
Keras 强调简单性,你只需几行代码就能构建一个神经网络。Keras由纯Python编写而成并以Tensorflow、Theano以及CNTK为后端,可以运行在TensorFlow和Theano上。
Deeplearning4J
作为一名Java的老粉,我必须介绍一下Deeplearning4J(简称DL4J),从上面表中可以看出它是唯一一个全面支持基于Java的开源的分布式深度学习库。
由于目前基于Java的分布式计算、云计算、大数据的生态非常庞大,因此,Deeplearning4J可以与Hadoop及Spark自动整合,同时可以方便地在现有集群(包括但不限于AWS,Azure等)上进行扩展,根据集群的节点和连接自动优化,不像其他深度学习库那样可能需要用户手动调整。
以上是关于若干个深度学习框架的比较的主要内容,如果未能解决你的问题,请参考以下文章