「技术选型」深度学习软件如何选择?
深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。
深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。 [1]
深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。 [1]
下表比较了用于深度学习的著名软件框架、库和计算机程序。



Deep-learning software by name
| 软件 | Apache MXNet | Apache SINGA | BigDL | Caffe |
| 创建者 | Apache Software Foundation | Apache Software Foundation | Jason Dai (Intel) | Berkeley Vision and Learning Center |
| 初始版本 | 2015 | 2015 | 2016 | 2013 |
| 软件许可证 | Apache 2.0 | Apache 2.0 | Apache 2.0 | BSD |
| 开源 | Yes | Yes | Yes | Yes |
| 平台 | Linux, macOS, Windows,[37][38] AWS, Android,[39] iOS, JavaScript[40] | Linux, macOS, Windows | Apache Spark | Linux, macOS, Windows[2] |
| 编写语言 | Small C++ core library | C++ | Scala | C++ |
| 接口 | C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl, Clojure | Python, C++, Java | Scala, Python | Python, MATLAB, C++ |
| OpenMP 支持 | Yes | No | Yes | |
| OpenCL 支持 | On roadmap[41] | Supported in V1.0 | Under development[3] | |
| CUDA 支持 | Yes | Yes | No | Yes |
| 自动分化 | Yes[42] | ? | Yes | |
| 预训练模型 | Yes[43] | Yes | Yes | Yes[4] |
| RNN | Yes | Yes | Yes | Yes |
| CNN | Yes | Yes | Yes | Yes |
| RBM/DBNs | Yes | Yes | No | |
| 并行执行(多节点) | Yes[44] | Yes | ? | |
| 积极发展 | Yes | No[5] |
| 软件 | Chainer | Deeplearning4j | Dlib | Flux |
| 创建者 | Preferred Networks | Skymind engineering team; Deeplearning4j community; originally Adam Gibson | Davis King | Mike Innes |
| 初始版本 | 2015 | 2014 | 2002 | 2017 |
| 软件许可证 | BSD | Apache 2.0 | Boost Software License | MIT license |
| 开源 | Yes | Yes | Yes | Yes |
| 平台 | Linux, macOS | Linux, macOS, Windows, Android (Cross-platform) | Cross-platform | Linux, MacOS, Windows (Cross-platform) |
| 编写语言 | Python | C++, Java | C++ | Julia |
| 接口 | Python | Java, Scala, Clojure, Python (Keras), Kotlin | C++ | Julia |
| OpenMP 支持 | No | Yes | Yes | |
| OpenCL 支持 | No | No[7] | No | |
| CUDA 支持 | Yes | Yes[8][9] | Yes | Yes |
| 自动分化 | Yes | Computational Graph | Yes | Yes |
| 预训练模型 | Yes | Yes[10] | Yes | Yes[12] |
| RNN | Yes | Yes | No | Yes |
| CNN | Yes | Yes | Yes | Yes |
| RBM/DBNs | No | Yes | Yes | No |
| 并行执行(多节点) | Yes | Yes[11] | Yes | Yes |
| 积极发展 | No[6] | Yes |
| 软件 | Intel Math Kernel Library | Keras | MATLAB + Deep Learning Toolbox | Microsoft Cognitive Toolkit (CNTK) | Neural Designer |
| 创建者 | Intel | François Chollet | MathWorks | Microsoft Research | Artelnics |
| 初始版本 | 2015 | 2016 | |||
| 软件许可证 | Proprietary | MIT license | Proprietary | MIT license[26] | Proprietary |
| 开源 | No | Yes | No | Yes | No |
| 平台 | Linux, macOS, Windows on Intel CPU[14] | Linux, macOS, Windows | Linux, macOS, Windows | Windows, Linux[27] (macOS via Docker on roadmap) | Linux, macOS, Windows |
| 编写语言 | Python | C, C++, Java, MATLAB | C++ | C++ | |
| 接口 | C[15] | Python, R | MATLAB | Python (Keras), C++, Command line,[28] BrainScript[29] (.NET on roadmap[30]) | Graphical user interface |
| OpenMP 支持 | Yes[16] | Only if using Theano as backend | No | Yes[31] | Yes |
| OpenCL 支持 | No | Can use Theano, Tensorflow or PlaidML as backends | No | No | No |
| CUDA 支持 | No | Yes | Train with Parallel Computing Toolbox and generate CUDA code with GPU Coder[21] | Yes | No |
| 自动分化 | Yes | Yes | Yes[22] | Yes | ? |
| 预训练模型 | No | Yes[18] | Yes[23][24] | Yes[32] | ? |
| RNN | Yes[17] | Yes | Yes[23] | Yes[33] | No |
| CNN | Yes[17] | Yes | Yes[23] | Yes[33] | No |
| RBM/DBNs | No[19] | Yes | No[34] | No | |
| 并行执行(多节点) | No | Yes[20] | With Parallel Computing Toolbox[25] | Yes[35] | ? |
| 积极发展 | Yes | Yes | No[36] |
| 软件 | OpenNN | PlaidML | PyTorch | TensorFlow |
| 创建者 | Artelnics | Vertex.AI,Intel | Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan (Facebook) | Google Brain |
| 初始版本 | 2003 | 2017 | 2016 | 2015 |
| 软件许可证 | GNU LGPL | AGPL | BSD | Apache 2.0 |
| 开源 | Yes | Yes | Yes | Yes |
| 平台 | Cross-platform | Linux, macOS, Windows | Linux, macOS, Windows | Linux, macOS, Windows,[47] Android |
| 编写语言 | C++ | Python, C++, OpenCL | Python, C, C++, CUDA | C++, Python, CUDA |
| 接口 | C++ | Python, C++ | Python, C++, Julia | Python (Keras), C/C++, Java, Go, JavaScript, R,[48] Julia, Swift |
| OpenMP 支持 | Yes | ? | Yes | No |
| OpenCL 支持 | No | Some OpenCL ICDs are not recognized | Via separately maintained package[45][46][46] | On roadmap[49] but already with SYCL[50] support |
| CUDA 支持 | Yes | No | Yes | Yes |
| 自动分化 | ? | Yes | Yes | Yes[51] |
| 预训练模型 | ? | Yes | Yes | Yes[52] |
| RNN | No | Yes | Yes | Yes |
| CNN | No | Yes | Yes | Yes |
| RBM/DBNs | No | Yes | ||
| 并行执行(多节点) | ? | Yes | Yes | Yes |
| 积极发展 | Yes | Yes | Yes |
| 软件 | Theano | Torch | Wolfram Mathematica |
| 创建者 | Université de Montréal | Ronan Collobert, Koray Kavukcuoglu, Clement Farabet | Wolfram Research |
| 初始版本 | 2007 | 2002 | 1988 |
| 软件许可证 | BSD | BSD | Proprietary |
| 开源 | Yes | Yes | No |
| 平台 | Cross-platform | Linux, macOS, Windows,[58] Android,[59] iOS | Windows, macOS, Linux, Cloud computing |
| 编写语言 | Python | C, Lua | C++, Wolfram Language, CUDA |
| 接口 | Python (Keras) | Lua, LuaJIT,[60] C, utility library for C++/OpenCL[61] | Wolfram Language |
| OpenMP 支持 | Yes | Yes | Yes |
| OpenCL 支持 | Under development[53] | Third party implementations[62][63] | No |
| CUDA 支持 | Yes | Yes[64][65] | Yes |
| 自动分化 | Yes[54][55] | Through Twitter's Autograd[66] | Yes |
| 预训练模型 | Through Lasagne's model zoo[56] | Yes[67] | Yes[68] |
| RNN | Yes | Yes | Yes |
| CNN | Yes | Yes | Yes |
| RBM/DBNs | Yes | Yes | Yes |
| 并行执行(多节点) | Yes[57] | Yes[58] | Yes[69] |
| 积极发展 | No | No | Yes |
-
^许可证这里是一个摘要,并不是完整的许可证声明。一些库可能在不同的许可证下在内部使用其他库
机器学习模型的兼容性比较
| Format Name | 设计目标 | 与其他格式比较 | 自包含 DNN 模型 | 预处理和后处理 | 用于调整和校准的运行时配置 | 款模型互连 | 通用平台 |
|---|---|---|---|---|---|---|---|
| TensorFlow, Keras, Caffe, Torch, ONNX, | 算法训练 | No | 没有/单 独的文件 在大多数格式 | No | No | No | Yes |
| ONNX | 算法训练 | Yes | 没有/单 独的文件在大多数格式 | No | No | No | Yes |
本文:「技术选型」深度学习软件如何选择?
https://architect.pub/wikipedia-comparison-deep-learning-software
谢谢大家关注,转发,点赞和点在看。
相关文章:
「技术选型」深度学习软件如何选择?
深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。 深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对…...
加油站会员管理小程序实战开发教程13
我们上一篇讲解了会员注册的功能,本篇我们介绍一下会员开卡的功能。 会员注册之后,可以进行开卡的动作。一个会员可以有多张会员卡,在微搭中用来描述这种一对多的关系的,我们用关联关系来表达。 登录微搭的控制台,点击数据模型,点击新建数据模型 输入数据源的名称会员卡…...
Go语言Web入门之浅谈Gin框架
Gin框架Gin简介第一个Gin示例HelloworldRESTful APIGin返回数据的几种格式Gin 获取参数HTTP重定向Gin路由&路由组Gin框架当中的中间件Gin简介 Gin 是一个用 Go (Golang) 编写的 web 框架。它是一个类似于 martini 但拥有更好性能的 API 框架,由于 httprouter&a…...
《MySQL学习》 MySQL优化器选择如何选择索引
一.优化器的选择逻辑 建表语句 CREATE TABLE t (id int(11) NOT NULL AUTO_INCREMENT,a int(11) DEFAULT NULL,b int(11) DEFAULT NULL,PRIMARY KEY (id),KEY a (a),KEY b (b) ) ENGINEInnoDB;往表中插入10W条数据 delimiter ;; create procedure idata() begindeclare i in…...
uniapp 悬浮窗(应用内、无需授权) Ba-FloatWindow2
简介(下载地址) Ba-FloatWindow2 是一款应用内并且无需授权的悬浮窗插件。支持多种拖动;自定义位置、大小;支持动态修改。 支持自动定义起始位置支持自定义悬浮窗大小支持贴边显示支持多种拖动方效果:不可拖动、任意…...
MMKV与mmap:全方位解析
概述 MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今,在 iOS 微信上使用已有近 3 年,其性能和稳定性经过了时间的验证。近期已移植…...
【信息系统项目管理师】项目管理十大知识领域记忆敲出(整体范围进度)
【信息系统项目管理师】项目管理十大知识领域记忆敲出(整体范围进度) 【信息系统项目管理师】项目管理十大知识领域记忆敲出(整体范围进度)【信息系统项目管理师】项目管理十大知识领域记忆敲出(整体范围进度ÿ…...
一起学 pixijs(3):Sprite
大家好,我是前端西瓜哥。今天来学习 pixijs 的 Sprite。 Sprite pixijs 的 Sprite 类用于将一些纹理(Texture)渲染到屏幕上。 Sprite 直译为 “精灵”,是游戏开发中常见的术语,就是将一个角色的多个动作放到一个图片…...
深入讲解Kubernetes架构-垃圾收集
垃圾收集(Garbage Collection)是 Kubernetes 用于清理集群资源的各种机制的统称。 垃圾收集允许系统清理如下资源:终止的 Pod已完成的 Job不再存在属主引用的对象未使用的容器和容器镜像动态制备的、StorageClass 回收策略为 Delete 的 PV 卷…...
Flink03: 集群安装部署
Flink支持多种安装部署方式 StandaloneON YARNMesos、Kubernetes、AWS… 这些安装方式我们主要讲一下standalone和on yarn。 如果是一个独立环境的话,可能会用到standalone集群模式。 在生产环境下一般还是用on yarn 这种模式比较多,因为这样可以综合利…...
OCR项目实战(一):手写汉语拼音识别(Pytorch版)
✨写在前面:强烈推荐给大家一个优秀的人工智能学习网站,内容包括人工智能基础、机器学习、深度学习神经网络等,详细介绍各部分概念及实战教程,非常适合人工智能领域初学者及研究者学习。➡️点击跳转到网站。 📝OCR专栏…...
【js】export default也在影响项目性能呢
这里写目录标题介绍先说结论分析解决介绍 无意间看到一个关于export与exprot default对比的话题, 于是对二者关于性能方面,有了想法,二者的区别,仅仅是在于写法吗? 于是,有了下面的测试。 先说结论 太长…...
《软件安全》 彭国军 阅读总结
对于本书,小编本意是对其讲述的内容,分点进行笔记的整理,后来学习以后,发现,这本书应该不算是一本技术提升类的书籍,更像是一本领域拓展和知识科普类书籍,所讲知识广泛,但是较少实践…...
深入讲解Kubernetes架构-节点与控制面之间的通信
本文列举控制面节点(确切说是 API 服务器)和 Kubernetes 集群之间的通信路径。 目的是为了让用户能够自定义他们的安装,以实现对网络配置的加固, 使得集群能够在不可信的网络上(或者在一个云服务商完全公开的 IP 上&am…...
120个IT冷知识,看完就不愁做选择题了
目录 IT冷知识 01-10 1.冰淇淋馅料 2.蠕虫起源 3.Linux和红帽子 4."间谍软件"诞生 5.游戏主机的灵魂 6.Linux之父 7.NetBSD的口号 8.安卓起源 9.不是第七代的 Win 7 10.域名金字塔 11~20 11.神奇魔盒 12. 第一个Ubuntu 正式版本 13.巾帼英雄 14.密码…...
Java之动态规划之机器人移动
目录 0.动态规划问题 一.不同路径 1.题目描述 2.问题分析 3.代码实现 二.不同路径 II 1.题目描述 2.问题分析 3.代码实现 三.机器人双向走路 1.题目描述 2.问题分析 3.代码实现 0.动态规划问题 动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问…...
seata源码-全局事务提交 服务端源码
前面的博客中,我们介绍了,发起全局事务时,是如何进行全局事务提交的,这篇博客,主要记录,在seata分布式事务中,全局事务提交的时候,服务端是如何进行处理的 发起全局事务提交操作 事…...
C++ 模板
文章目录一、泛型编程二、 函数模板三、类模板一、泛型编程 泛型编程:编写与类型无关的通用代码,代码复用的一种方法 在 C 中,我们可以通过函数重载实现通用的交换函数 Swap ,但是有一些缺点 重载函数只有类型不同,…...
JWT安全漏洞以及常见攻击方式
前言 随着web应用的日渐复杂化,某些场景下,仅使用Cookie、Session等常见的身份鉴别方式无法满足业务的需要,JWT也就应运而生,JWT可以有效的解决分布式场景下的身份鉴别问题,并且会规避掉一些安全问题,如CO…...
华为OD机试题 - 最小施肥机能效(JavaScript)
最近更新的博客 华为OD机试题 - 任务总执行时长(JavaScript) 华为OD机试题 - 开放日活动(JavaScript) 华为OD机试 - 最近的点 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试题 - 最小步骤数(JavaScript) 华为OD机试题 - 任务混部(JavaScript) 华为OD机试题 - N 进…...
旧设备重生:如何让经典iOS设备突破系统限制重获新生?
旧设备重生:如何让经典iOS设备突破系统限制重获新生? 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …...
5个行业颠覆场景:用PptxGenJS实现办公自动化效率革命
5个行业颠覆场景:用PptxGenJS实现办公自动化效率革命 【免费下载链接】PptxGenJS Create PowerPoint presentations with a powerful, concise JavaScript API. 项目地址: https://gitcode.com/gh_mirrors/pp/PptxGenJS PptxGenJS是一款基于JavaScript的开源…...
GetQzonehistory:你的QQ空间回忆一键备份终极指南
GetQzonehistory:你的QQ空间回忆一键备份终极指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心那些记录青春岁月的QQ空间说说不小心丢失?从青涩的…...
终极免费方案:3分钟掌握ViGEmBus虚拟游戏手柄驱动的完整部署与应用
终极免费方案:3分钟掌握ViGEmBus虚拟游戏手柄驱动的完整部署与应用 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 你是否曾为游戏不支持你的手柄…...
3分钟上手!AI驱动的代码学习助手完全指南
3分钟上手!AI驱动的代码学习助手完全指南 【免费下载链接】Tutorial-Codebase-Knowledge Turns Codebase into Easy Tutorial with AI 项目地址: https://gitcode.com/gh_mirrors/tu/Tutorial-Codebase-Knowledge Tutorial-Codebase-Knowledge是一款AI驱动的…...
nlp_gte_sentence-embedding_chinese-large长文本处理技巧:分段与聚合策略
nlp_gte_sentence-embedding_chinese-large长文本处理技巧:分段与聚合策略 1. 引言 你是不是也遇到过这样的问题:手头有一篇几十页的技术报告或者学术论文,想要用nlp_gte_sentence-embedding_chinese-large模型来提取文本向量,却…...
等价无穷小替换的边界:为何加减法成为禁区
1. 等价无穷小替换的基本原理 第一次接触等价无穷小替换这个概念时,我和大多数同学一样感到困惑。为什么在计算极限时,x和sinx可以直接互相替换?为什么老师反复强调这个技巧只能在乘除法中使用?要理解这些问题,我们需要…...
为什么你的局域网速度慢?可能是集线器和交换机的区别没搞懂
为什么你的局域网速度慢?可能是集线器和交换机的区别没搞懂 家里或办公室的网络总是不给力?明明升级了宽带套餐,下载文件时却还是像蜗牛爬行?问题可能出在你忽略的网络设备选择上。许多用户至今仍在用早已淘汰的集线器(…...
零基础玩转Qwen-Image-Edit-2511-Unblur-Upscale:模糊图片秒变清晰
零基础玩转Qwen-Image-Edit-2511-Unblur-Upscale:模糊图片秒变清晰 你是否遇到过这样的烦恼?手机里珍藏的老照片因为年代久远变得模糊不清,或者抓拍的精彩瞬间因为手抖而糊成一片。又或者,你从网上下载了一张心仪的图片ÿ…...
OpenClaw+Qwen3-32B科研助手:文献综述自动化实践
OpenClawQwen3-32B科研助手:文献综述自动化实践 1. 为什么需要自动化文献综述 作为一名计算机视觉方向的博士生,我每周需要阅读数十篇论文。传统的工作流程是:手动下载PDF→逐篇阅读→摘录关键观点→整理成表格。这个过程不仅耗时ÿ…...
