Torch 是用 Lua 编写的计算框架,支持机器学习算法。谷歌 DeepMind、Facebook 等大型科技公司使用 Torch 的某些版本,由内部团队专门负责定制自己的深度学习平台。Lua 是上世纪九十年代早期在巴西开发的多范例脚本语言。 Torch7 虽然功能强大,但其设计并不适合在两个群体中大范围普及,即主要依赖 Python 的学术界,以及普遍使用 Java 的企业软件工程师。Deeplearning4j用Java编写,反映了我们对行业应用和使用便利的重视。我们认为可用性是阻碍深度学习实施工具广泛普及的限制因素。我们认为可扩展性应当通过Hadoop和Spark这样的开源分布式运行时系统来实现自动化。我们还认为,从确保工具正常运作和构建社区两方面来看,提供商业支持的开源框架是最恰当的解决方案。 Torch 的利与弊: (+) 大量模块化组件,开奖,容易组合 (+) 很容易编写自己的层类型并在GPU上运行 (+) Lua.;) (大多数学习库的代码是Lua,容易读取) (+) 有很多已预定型的模型! (-) Lua (-) 通常需要自己编写定型代码(即插即用相对较少) (-) 不适合递归神经网络 Caffe 是一个广为人知、广泛应用的机器视觉库,将Matlab实现的快速卷积网络移植到了 C 和 C++ 平台上。Caffe 不适用于文本、声音或时间序列数据等其他类型的深度学习应用。与本文提到的其他一些框架相同,Caffe 选择了 Python 作为其 API。 Deeplearning4j 和 Caffe 都可以用卷积网络进行图像分类,这是最先进的技术。与 Caffe 不同,Deeplearning4j 支持任意芯片数的 GPU 并行运行,并且提供许多看似微不足道,却能使深度学习在多个并行 GPU 集群上运行得更流畅的功能。虽然在论文中被广泛引述,但 Caffe 主要用于为其 Model Zoo 网站提供已预定型的模型。Deeplearning4j 正在开发将 Caffe 模型导入 Spark 的开发解析器。 Caffe 的利与弊: (+) 适合前馈网络和图像处理 (+) 适合微调已有的网络 (+) 定型模型而无需编写任何代码 (+) Python界面相当有用 (-) 需要用C++ / CUDA编写新的GPU层 (-) 不适合递归网络 (-) 用于大型网络(GoogLeNet、ResNet)时过于繁琐 CNTK CNTK 是微软的开源深度学习框架。CNTK 的全称是“计算网络工具包”。此学习库包括前馈 DNN、卷积网络和递归网络。CNTK 提供基于 C++ 代码的 Python API。虽然 CNTK 遵循一个比较宽松的许可协议,却并未采用 ASF 2.0、BSD 或 MIT 等一些较为传统的许可协议。 DSSTNE、MXNet 亚马逊的深度可伸缩稀疏张量网络引擎又称 DSSTNE,是用于机器学习和深度学习建模的学习库。它是众多最新的开源深度学习库之一,在 Tensorflow 和 CNTK 之后发布。 DSSTNE 主要用 C++ 写成,速度较快,不过吸引到的用户群体规模尚不及其他学习库。 由此,亚马逊首席技术官 Werner Vogels 在上周二示,亚马逊网络服务公司(AWS)刚刚选择 MXNet 作为其最主要的深度学习框架。 MXNet 同 Keras 一样是高级库,但它的优势在另外的方面。 MXNet 作为 2016 年的开源新秀之一,MXNet 值得注意的特征是其紧凑的大小和跨平台的可移植性。亚马逊 CTO Vogels 称赞 MXNet 核心库使用单一 C ++ 源文件,Android、iOS 都可以编译。开发人员还可以使用多种语言:Python,C ++,R,Scala,Julia,Matlab和Java。 (责任编辑:本港台直播) |