TensorFlow 、Caffe等9大主流人工智能框架优劣势分析

DCDLIN 2019-07-12

点击上方关注,All in AI中国

TensorFlow 、Caffe等9大主流人工智能框架优劣势分析

从机器人到谷歌Siri,再到现在新推出的谷歌双工系统,人工智能似乎已经取得了相当大的进步,变得越来越人性化。

对机器学习和人工智能的需求呈指数级增长,相关社区也因此增加,促进了一些AI框架的发展,这些框架使得学习AI变得更加容易。

在本文中,您将了解一些最佳框架,以帮助您开始AI开发。

Tensor Flow

https://www.tensorflow.org

TensorFlow 、Caffe等9大主流人工智能框架优劣势分析

Tensor Flow来自谷歌家族,是一个强大的开源框架,支持深度学习,甚至可以通过移动设备访问。

Tensor Flow是一个适用于统计程序开发的工具。由于它提供分布式培训,所以可以在用户喜欢的任何抽象级别上更有效地培训机器模型。

特性

  • 可扩展的多编程接口,便于编程。
  • 强劲的增长动力,拥有强大的开源社区。
  • 为人们提供广泛且有详细记录的手册。

优点

  • Tensor Flow使用的语言是Python,现在非常流行。
  • 该框架具有较高的计算能力。因此,它可以在任何CPU或GPU上使用。
  • 使用计算图形抽象创建机器模型。

缺点

  • 为了做出决策或预测,框架将输入数据通过多个节点传递,这可能非常耗时。
  • 缺乏许多预先训练好的AI模型。

Microsoft CNTK

The Microsoft Cognitive Toolkit - Cognitive Toolkit - CNTK | Microsoft Docs

TensorFlow 、Caffe等9大主流人工智能框架优劣势分析

Microsoft CNTK是一个更快、更通用的开源框架,它基于支持文本、消息和语音重构的神经网络。

它提供了一个高效的扩展环境,在保证精度的同时,可以更快地全面评估机器模型。

Microsoft CNTK与主要的海量数据集集成,使其成为Skype、Cortana等大公司的首选,同时具有非常易于表达和使用的架构。

特性

  • 高度优化以提供速率、可扩展性、速度和高级集成。
  • 内置超参数调整、监督学习模型、增强、CNN、RNN等组件。
  • 资源用来提供最佳效率。
  • 拥有可以高效表达的自有网络,如完整的API,包括高级和低级。

优点

  • 由于它支持Python和C++,所以这个框架可以同时使用多个服务器,从而使学习过程更快。
  • 它的开发考虑到了人工智能世界的最新发展。Microsft CNTK的架构支持GAN、RNN和CNN。
  • 它允许分布式培训有效地培训机器模型。

缺点

  • 它缺乏可视化板和ARM支持。

Caffe

Caffe | Caffe Tutorial

TensorFlow 、Caffe等9大主流人工智能框架优劣势分析

Caffe是一个深度学习网络,附带预先加载的训练好的神经网络。如果你的截止日期很近,这应该是你的第一选择。

该框架以其图像处理能力而闻名,还有对MATLAB的扩展支持。

特性

  • 它的所有模型都是用纯文本模式编写的。
  • 因为它已经预先加载,所以可提供巨大的速度和高效率的工作。
  • 一个活跃的开源社区,用于讨论和协作代码。

优点

  • C、C++和Python相互连接,它还支持CNN(卷积神经网络)的建模。
  • 由于速度快,计算数字任务时效率很高。

缺点

  • Caffe不能处理复杂的数据,但在处理图像的视觉处理时速度较快。

Theano

Welcome — Theano 1.0.0 documentation

TensorFlow 、Caffe等9大主流人工智能框架优劣势分析

使用GPU代替CPU,该框架支持深度学习研究,并能够为需要高计算能力的网络提供准确性。例如,多维数组的计算需要高功率,而Theano能做到这一点。

Theano基于Python,Python是一种经过验证的编程语言,可以提高处理和响应速度。

特性

  • 由于动态代码生成,表达式的计算速度更快。
  • 即使值很小,也能提供出色的精确度。
  • 单元测试是Theano的一个重要特性,因为它允许用户自我验证代码,以及轻松地检测和诊断错误。

优点

  • 针对CPU和GPU进行了优化。

缺点

  • 当前版本的Theano将不再更新或添加任何功能。

Amazon machine learning

Amazon Machine Learning 机器学习_机器学习服务-AWS云服务

TensorFlow 、Caffe等9大主流人工智能框架优劣势分析

作为AI社区的趋势参与者,Amazon machine learning在开发自学工具方面提供了高端支持。

该框架已在其多个服务(如AWS,S3和Amazon Redshift等)中拥有现有的用户基础。这是亚马逊的托管服务,对模型进行数据分析、模型培训和评估三个操作。

特性

  • 即使您是一个初学者、数据科学家或开发人员,AWS中都有针对每个级别的经验定制的工具。
  • 安全性至关重要,因此所有数据都是加密的。
  • 为数据分析和理解提供广泛的工具。
  • 与所有主要数据集的集成。

优点

  • 您不需要使用这个框架编写大量代码。相反,它允许您通过API与AI支持的框架进行交互。
  • 数据科学家、开发人员和ML研究人员常用。

缺点

  • 它缺乏灵活性,因为整个框架都是抽象的,所以如果您想选择一个特定的标准化或机器学习算法,就不合适。
  • 缺乏数据可视化。

Torch

Torch | Scientific computing for LuaJIT.

Torch是一个开源框架,可以支持数值运算。它为快速开发深度学习网络提供了多种算法。

它广泛用于Facebook和Twitter的AI实验室。有一个基于Python的框架,称为PyTorch,已经被证明是更简单和更可靠的。

特性

  • 具有许多例程,可以使用N维数组模型进行索引,切片,转置。
  • 存在优化例程,主要是基于神经网络模型的数字。
  • GPU支持非常高效。
  • 与iOS和Andriod轻松集成。

优点

  • 语言和集成的灵活性非常高。
  • 高水平的速度和GPU利用率。
  • 预先存在的模型可用于训练数据。

缺点

  • 文档对用户来说不是很清楚,用户学习困难。
  • 缺乏立即使用的代码,因此需要时间。
  • 它最初基于一种名为Lua的编程语言,并没有多少人知道它。

Accord.Net

http://accord-framework.net

Accord.net是一个基于C#的框架,它帮助开发用于音频和图像处理的神经网络。

可以在商业上使用它来生成计算机视觉应用程序,信号处理以及统计应用程序。

特性

  • 成熟,经过良好测试的代码库,因为它始于2012年。
  • 提供一组全面的示例模型和数据集,以快速启动应用程序。

优点

  • 它由一个活跃的开发团队持续支持。
  • 这个文档齐全的框架可以有效地处理数字密集型计算和可视化。
  • 使用该框架可以方便地执行算法和信号处理。
  • 它可以轻松处理数值优化和人工神经网络。

缺点

  • 与其他框架相比,它并不为人所知。
  • 与其他框架相比,它的性能较慢。

Apache Mahout

Apache Mahout

TensorFlow 、Caffe等9大主流人工智能框架优劣势分析

Apache Mahout是一个开源框架,旨在开发可扩展的机器学习框架。它不涉及API本身,而是助于数据科学家和工程师实现新的机器学习算法。

特性

  • 以Scala DSL而闻名,它在数学上很有表现力
  • 支持多个分布式后端扩展

优点

  • 它有助于集群、协同过滤和分类。
  • 它的计算操作使用Java库,速度更快。

缺点

  • Python库与此框架的Java库不兼容。
  • 它的计算操作比Spark MLib慢。

Spark MLib

MLlib | Apache Spark

Apache支持的Spark MLib框架由R、Scala、Java和Python支持。它可以加载Hadoop工作流来提供机器学习算法,如分类、回归和集群。

除了Hadoop,它还可以与cloud、Apache甚至独立系统集成。

特性

  • 高性能是关键因素之一,据说比MapReduce快100倍
  • Spark非常通用,可在多种计算环境中运行

优点

  • 它可以快速处理大量的数据,因为它的工作是迭代计算。
  • 它有多种语言版本,易于插拔。
  • 它可以轻松地循环大规模的数据处理。

缺点

  • 它只能用Hadoop插件。
  • 如果没有对这个框架进行大量的工作,就很难理解这个框架的机制

相关推荐