「技术选型」深度学习软件如何选择?
深度学习(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 进…...

Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程ES(三)
DSL官方地址: DSL查询分类 Elasticsearch提供了基于JSON的DSL(https://www.elastic.co/docs/explore-analyze/query-filter/languages/querydsl)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据࿰…...

nginx部署
配置阿里云yum源 安装如下编译工具 yum install -y gcc gcc-c autoconf automake make #安装使用nginx还得安装nginx所需的一些第三方系统库的支持,比如nginx的静态资源压缩功能所需的gzip lib库,nginx需要支持URL重写,所需的pcre库&…...
金融预测模型开发:数据预处理、机器学习预测与交易策略优化
金融预测模型开发:数据预处理、机器学习预测与交易策略优化 概述 本文将详细介绍一个完整的金融预测模型开发流程,包含数据预处理、机器学习预测和交易策略优化三个核心模块。我们使用Python实现一个端到端的解决方案,适用于股票价格预测和量化交易策略开发。 # 导入必要…...
嵌入式面试提纲
一、TCP/IP 协议 1.1 TCP/IP 五层模型概述 链路层(Link Layer) 包括网卡驱动、以太网、Wi‑Fi、PPP 等。负责把数据帧(Frame)在相邻节点间传输。 网络层(Internet Layer) 最典型的是 IP 协议 (IPv4/IPv6)。负责 路由选路、分片与重组。 其他:ICMP(Ping、目的不可达等)…...

算法-数论
C-小红的数组查询(二)_牛客周赛 Round 95 思路:不难看出a数组是有循环的 d3,p4时,a数组:1、0、3、2、1、0、3、2....... 最小循环节为4,即最多4种不同的数 d4,p6时,a数组:1、5、3、…...

在 Android Studio 中使用 GitLab 添加图片到 README.md
1. 将图片文件添加到项目中 在项目根目录下创建一个 images 或 assets 文件夹 将你的图片文件(如 screenshot.png)复制到这个文件夹中 2. 跟提交项目一样,提交图片到 GitLab 在 Android Studio 的 Git 工具窗口中: 右键点击图片…...

让音乐“看得见”:使用 HTML + JavaScript 实现酷炫的音频可视化播放器
在这个数字时代,音乐不仅是听觉的享受,更可以成为视觉的盛宴!本文用 HTML + JavaScript 实现了一个音频可视化播放器,它不仅能播放本地音乐、控制进度和音量,还能通过 Canvas 绘制炫酷的音频频谱图,让你“听见色彩,看见旋律”。 效果演示 核心功能 本项目主要包含以下…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(上)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
深入浅出Spring Security
一、Spring Security基本组件 Spring Security的设计理念是提供一种可插拔的、高度可定制的安全服务。其核心功能依赖于以下几个关键组件: Authentication (认证): 概念: 确认用户身份的过程,即验证“你是谁”。核心类: Authentication 接口,…...
【Linux】SSH:免密登录
配置 SSH 的免密登录(基于公钥认证)可实现无需输入密码即可登录远程主机,常用于自动化脚本、服务器集群、DevOps 等场景。 生成本地 SSH 密钥对(若尚未存在) 在本地客户端执行: ssh-keygen -t rsa -b 409…...