2019年十大最佳深度学习框架


2019年十大最佳深度学习框架

文章插图
虽然我们大多数人都惊叹为什么DL这么好? 在使用大量数据进行训练时,它在准确性方面非常出色 。近几年随着深度学习算法的发展,出现了很多深度学习的框架,这些框架各有所长,各具特色 。下面将为大家介绍2019年最受欢迎的十大深度学习框架 。
TensorFlow
2019年十大最佳深度学习框架

文章插图
谷歌的Tensorflow可以说是当今最受欢迎的深度学习框架 。Gmail,Uber,Airbnb,Nvidia以及其他许多知名品牌都在使用 。TF是目前深度学习的主流框架,Tensorflow主要特性:
  • TensorFlow支持Python、JAVAScript、C ++、Java和Go,C#和Julia等多种编程语言 。
  • TF不仅拥有强大的计算集群,还可以在IOS和Android等移动平台上运行模型 。
  • TF编程入门难度较大 。初学者需要仔细考虑神经网络的架构,正确评估输入和输出数据的维度和数量 。
  • TF使用静态计算图进行操作。也就是说我们需要先定义图形,然后运行计算,如果我们需要对架构进行更改,我们会重新训练模型 。选择这样的方法是为了提高效率,但是许多现代神经网络工具能够在学习过程中考虑改进而不会显着降低学习速度 。在这方面,TensorFlow的主要竞争对手是PyTorch。
TensorFlow优点:
  • 它非常适合创建和试验深度学习架构,便于数据集成,如输入图形,SQL表和图像 。
  • 它得到谷歌的支持,这就说明该模型短期内不会被抛弃,因此值得投入时间来学习它 。
PyTorch
2019年十大最佳深度学习框架

文章插图
Tensorflow之后用于深度学习的主要框架是PyTorch 。PyTorch框架是Facebook开发的,已被Twitter和Salesforce等公司使用 。PyTorch基本特性:
  • 与TensorFlow不同,PyTorch库使用动态更新的图形进行操作。这意味着它可以在流程中更改体系结构 。
  • 在PyTorch中,您可以使用标准调试器,例如pdb或PyCharm 。
PyTorch优点:
  • 训练神经网络的过程简单明了 。同时,PyTorch支持数据并行和分布式学习模型,并且还包含许多预先训练的模型 。
  • PyTorch更适合小型项目和原型设计 。
  •  
Sonnet
2019年十大最佳深度学习框架

文章插图
Sonnet深度学习框架是建立在TensorFlow的基础之上 。它是DeepMind用于创建具有复杂架构的神经网络 。Sonnet基本特性:
  • 面向对象的库,在开发神经网络(NN)或其他机器学习(ML)算法时更加抽象 。
  • Sonnet的想法是构造对应于神经网络的特定部分的主要Python对象 。此外,这些对象独立地连接到计算TensorFlow图 。分离创建对象并将其与图形相关联的过程简化了高级体系结构的设计 。
Sonnet优点:
  • Sonnet的主要优点是可以使用它来重现DeepMind论文中展示的研究,比Keras更容易,因为DeepMind论文模型就是使用Sonnet搭建的 。
Keras
2019年十大最佳深度学习框架

文章插图
Keras是一个机器学习框架,如果您拥有大量数据和/或你想快速入门深度学习,那么Keras将非常适合学习 。Keras是TensorFlow高级集成APi,可以非常方便的和TensorFlow进行融合 。这是我强烈推荐学习的一个库 。Keras基本特性:
  • 除了Tensorflow之外,Keras还是其他流行的库(如Theano和CNTK)的高级API 。
  • 在Keras中更容易创建大规模的深度学习模型,但Keras框架环境配置比其他底层框架要复杂一些 。
【2019年十大最佳深度学习框架】Keras优点:
  • 对于刚刚入门的人来说,Keras是最好的深度学习框架 。它是学习和原型化简单概念的理想选择,可以理解各种模型和学习过程的本质 。
  • Keras是一个简洁的API 。可以快速帮助您创建应用程序 。
  • Keras中代码更加可读和简洁 。
  • Keras模型序列化/反序列化API,回调和使用Python生成器的数据流非常成熟 。
顺便说一下TensorFlow和Keras的对比:
PS:Tensorflow处于底层框架:这和MXNet,Theano和PyTorch等框架一样 。包括实现诸如广义矩阵 - 矩阵乘法和诸如卷积运算的神经网络原语之类的数学运算 。
Keras处于高度集成框架 。虽然更容易创建模型,但是面对复杂的网络结构时可能不如TensorFlow 。
MXNet
2019年十大最佳深度学习框架

文章插图
MXNet是一种高度可扩展的深度学习工具,可用于各种设备 。虽然与TensorFlow相比,它似乎没有被广泛使用,但MXNet的增长可能会因为成为一个Apache项目而得到提升 。MXNet基本特性:


推荐阅读