目录[隐藏][展示]
3.阿帕奇MXNet+ -
4. 微软认知工具包+ -
6. 苹果核心机器学习+ -
- 结论
深度学习框架由接口、库和工具的组合组成,用于快速准确地定义和训练机器学习模型。
由于深度学习使用大量非结构化、非文本数据,因此您需要一个框架来控制“层”之间的交互,并通过从输入数据中学习并做出自主决策来快速开发模型。
如果您有兴趣在 2021 年了解深度学习,请考虑使用以下框架之一。 请记住选择一个可以帮助您实现目标和愿景的产品。
1. TensorFlow
在谈到深度学习时, TensorFlow 通常是提到的第一个框架。 这个框架非常受欢迎,不仅被谷歌——负责创建它的公司——使用,还被 Dropbox、eBay、Airbnb、Nvidia 等其他公司使用。
TensorFlow 可用于开发高级和低级 API,允许您在几乎任何类型的设备上运行应用程序。 尽管 Python 是其主要语言,但 Tensoflow 的界面可以使用其他编程语言(例如 C++、Java、Julia 和 JavaScript)进行访问和控制。
作为开源,TensorFlow 允许您与其他 API 进行多次集成,并获得社区的快速支持和更新。 它依赖于“静态图”进行计算,使您可以立即进行计算或保存操作以供其他时间访问。 这些原因,加上您可以通过 TensorBoard“观察”神经网络发展的可能性,使 TensorFlow 成为最流行的深度学习框架。
主要特性
- 开源
- 高度灵活
- 快速调试
2. PyTorch
PyTorch 是 Facebook 开发的一个框架,用于支持其服务的运行。 自开源以来,该框架已被 Facebook 以外的公司使用,例如 Salesforce 和 Udacity。
该框架运行动态更新的图形,允许您在处理数据集时对其架构进行更改。 使用 PyTorch,即使没有任何深度学习经验,也可以更轻松地开发和训练神经网络。
作为开源并基于 Python,您可以简单快速地集成到 PyTorch。 它也是一个学习、使用和调试的简单框架。 如果您有任何疑问,您可以依靠两个社区(Python 社区和 PyTorch 社区)的大力支持和更新。
主要特性
- 简单易学
- 支持GPU和CPU
- 丰富的 API 集来扩展库
3. Apache MXNet
由于其高可扩展性、高性能、快速故障排除和高级 GPU 支持,该框架由 Apache 创建,用于大型工业项目。
MXNet 包括 Gluon 接口,允许所有技能水平的开发人员 开始深度学习 在云端、边缘设备和移动应用程序上。 只需几行 Gluon 代码,您就可以构建线性回归、卷积网络和循环 LSTM 目标检测、语音识别、推荐和个性化。
MXNet 可以在各种设备上使用,并受到多个设备的支持 编程语言 例如 Java、R、JavaScript、Scala 和 Go。 尽管其社区中的用户和成员数量很少,但 MXNet 具有编写良好的文档和巨大的增长潜力,特别是现在亚马逊已选择该框架作为 AWS 上机器学习的主要工具。
主要特性
- 8种语言绑定
- 分布式训练,支持多CPU多GPU系统
- 混合前端,允许在命令模式和符号模式之间切换
4. Microsoft认知工具包
如果您正在考虑开发在 Azure(Microsoft 云服务)上运行的应用程序或服务,Microsoft Cognitive Toolkit 是为您的深度学习项目选择的框架。 这是开源的,并受到 Python、C++、C#、Java 等编程语言的支持。 该框架旨在“像人脑一样思考”,因此它可以处理大量非结构化数据,同时提供快速训练和直观的架构。
通过选择此框架(与 Skype、Xbox 和 Cortana 相同的框架),您将从应用程序、可扩展性和与 Azure 的简单集成中获得良好的性能。 但是,与 TensorFlow 或 PyTorch 相比,其社区中的成员数量和支持有所减少。
以下视频提供了完整的介绍和应用示例:
主要特性
- 清晰的文件
- 微软团队的支持
- 直接图形可视化
5. Keras
与 PyTorch 一样,Keras 是一个基于 Python 的库,用于数据密集型项目。 keras API 在高层次上工作,并允许与低层次的 API 集成,例如 TensorFlow、Theano 和 Microsoft Cognitive Toolkit。
使用 keras 的一些优点是学习简单——是深度学习初学者的推荐框架; 它的部署速度; 得到了 python 社区和与其集成的其他框架社区的大力支持。
Keras 包含各种实现 神经网络的构建块 例如层、目标函数、激活函数和数学优化器。 它的代码托管在 GitHub 上,并且有论坛和 Slack 支持频道。 除了支持标准 神经网络, Keras 提供对卷积神经网络和循环神经网络的支持。
Keras 允许 深度学习模型 可在 iOS 和 Android 智能手机、Java 虚拟机或网络上生成。 它还允许在图形处理单元 (GPU) 和张量处理单元 (TPU) 集群上使用深度学习模型的分布式训练。
主要特性
- 预训练模型
- 多后端支持
- 用户友好的大型社区支持
6. 苹果核心机器学习
Core ML 由 Apple 开发以支持其生态系统 - IOS、Mac OS 和 iPad OS。 它的 API 在低级别工作,充分利用 CPU 和 GPU 的资源,这使得创建的模型和应用程序即使没有互联网连接也能继续运行,从而减少了设备的“内存占用”和功耗。
Core ML 实现这一点的方式并不完全是通过制作另一个针对在 iphone/ipad 上运行而优化的机器学习库。 相反,Core ML 更像是一个编译器,它接受模型规范和用其他机器学习软件表示的训练参数,并将其转换为一个文件,成为 iOS 应用程序的资源。 这种到 Core ML 模型的转换发生在应用程序开发期间,而不是在应用程序使用时实时进行,并且由 coremltools python 库促进。
Core ML 通过轻松集成 机器学习 模型到应用程序。 它支持具有 30 多种层的深度学习以及决策树、支持向量机和线性回归方法,所有这些都建立在 Metal 和 Accelerate 等低级技术之上。
主要特性
- 易于集成到应用程序中
- 优化使用本地资源,无需互联网访问
- 隐私:数据不必离开设备
7. 昂尼克斯
我们列表中的最后一个框架是 ONNX。 该框架源自微软和 Facebook 之间的合作,旨在简化在不同框架、工具、运行时和编译器之间传输和构建模型的过程。
ONNX 定义了一种可以在多个平台上运行的通用文件类型,同时利用低级 API 的优势,例如来自 Microsoft Cognitive Toolkit、MXNet、Caffe 和(使用转换器)Tensorflow 和 Core ML 的 API。 ONNX 背后的原理是在堆栈上训练模型并使用其他推理和预测来实现它。
LF AI 基金会是 Linux 基金会的一个子组织,是一个致力于构建生态系统以支持 开放源码 人工智能 (AI)、机器学习 (ML) 和深度学习 (DL) 的创新。 它于 14 年 2019 月 XNUMX 日将 ONNX 添加为研究生级项目。在 LF AI 基金会的保护下,ONNX 的这一举措被视为将 ONNX 确立为供应商中立的开放格式标准的一个重要里程碑。
ONNX 模型动物园是深度学习中预训练模型的集合,以 ONNX 格式提供。 每个模型都有 Jupyter笔记本 用于模型训练和使用训练后的模型进行推理。 这些笔记本是用 Python 编写的,并包含指向 训练数据集 以及对描述模型架构的原始科学文档的引用。
主要特性
- 框架互操作性
- 硬件优化
结论
这是对最佳框架的总结 深入学习. 为此目的有几个框架,免费或付费。 要为您的项目选择最好的,首先要知道您将为哪个平台开发应用程序。
TensorFlow 和 Keras 等通用框架是最佳选择。 但如果您需要使用操作系统或设备特定的优势,那么 Core ML 和 Microsoft Cognitive Toolkit 可能是最佳选择。
还有其他针对 Android 设备、其他机器和特定用途的框架在此列表中未提及。 如果您对后者感兴趣,我们建议您在 Google 或其他机器学习网站上搜索他们的信息。
发表评论