当前位置: 首页 > news >正文

「技术选型」深度学习软件如何选择?

深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。 

深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。 [1]

深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。 [1]

下表比较了用于深度学习的著名软件框架、库和计算机程序。

f8f0b6e160dd958aa76f781b255285ac.jpeg

7542bc835c743a4754df02afaf8093b3.jpeg

06b908b9b14150581720c9a7c1524234.jpeg

Deep-learning software by name

软件Apache MXNetApache SINGABigDLCaffe
创建者Apache  Software FoundationApache Software  FoundationJason  Dai (Intel)Berkeley  Vision and Learning Center
初始版本2015201520162013
软件许可证Apache 2.0Apache 2.0Apache 2.0BSD
开源YesYesYesYes
平台Linux, macOS, Windows,[37][38] AWS, Android,[39] iOS, JavaScript[40]Linux, macOS, WindowsApache  SparkLinux, macOS, Windows[2]
编写语言Small C++ core  libraryC++ScalaC++
接口C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl, ClojurePython, C++, JavaScala,  PythonPython, MATLAB, C++
OpenMP 支持YesNoYes
OpenCL 支持On roadmap[41]Supported  in V1.0Under development[3]
CUDA 支持YesYesNoYes
自动分化Yes[42]?Yes
预训练模型Yes[43]YesYesYes[4]
RNNYesYesYesYes
CNNYesYesYesYes
RBM/DBNsYesYesNo
并行执行(多节点)Yes[44]Yes?
积极发展YesNo[5]
软件ChainerDeeplearning4jDlibFlux
创建者Preferred  NetworksSkymind  engineering team; Deeplearning4j community; originally Adam GibsonDavis  KingMike  Innes
初始版本2015201420022017
软件许可证BSDApache 2.0Boost Software  LicenseMIT license
开源YesYesYesYes
平台Linux, macOSLinux, macOS, Windows, Android (Cross-platform)Cross-platformLinux, MacOS, Windows (Cross-platform)
编写语言PythonC++, JavaC++Julia
接口PythonJava, Scala, Clojure, Python (Keras), KotlinC++Julia
OpenMP 支持NoYesYes
OpenCL 支持NoNo[7]No
CUDA 支持YesYes[8][9]YesYes
自动分化YesComputational  GraphYesYes
预训练模型YesYes[10]YesYes[12]
RNNYesYesNoYes
CNNYesYesYesYes
RBM/DBNsNoYesYesNo
并行执行(多节点)YesYes[11]YesYes
积极发展No[6]Yes
软件

Intel

 Math  

Kernel 

Library

KerasMATLAB +  Deep Learning ToolboxMicrosoft  Cognitive Toolkit (CNTK)Neural Designer
创建者IntelFrançois  CholletMathWorksMicrosoft ResearchArtelnics
初始版本20152016
软件许可证ProprietaryMIT licenseProprietaryMIT  license[26]Proprietary
开源NoYesNoYesNo
平台Linux, macOS, Windows on Intel CPU[14]Linux, macOS, WindowsLinux, macOS, WindowsWindows, Linux[27] (macOS via Docker on roadmap)Linux, macOS, Windows
编写语言PythonC, C++, Java, MATLABC++C++
接口C[15]Python, RMATLABPython (Keras), C++, Command line,[28] BrainScript[29] (.NET on roadmap[30])Graphical user  interface
OpenMP 支持Yes[16]Only  if using Theano as backendNoYes[31]Yes
OpenCL 支持NoCan  use Theano, Tensorflow or PlaidML as backendsNoNoNo
CUDA 支持NoYesTrain with Parallel  Computing Toolbox and generate CUDA code with GPU Coder[21]YesNo
自动分化YesYesYes[22]Yes?
预训练模型NoYes[18]Yes[23][24]Yes[32]?
RNNYes[17]YesYes[23]Yes[33]No
CNNYes[17]YesYes[23]Yes[33]No
RBM/DBNsNo[19]YesNo[34]No
并行执行(多节点)NoYes[20]With Parallel  Computing Toolbox[25]Yes[35]?
积极发展YesYesNo[36]
软件OpenNNPlaidMLPyTorchTensorFlow
创建者ArtelnicsVertex.AI,IntelAdam  Paszke, Sam Gross, Soumith Chintala, Gregory Chanan (Facebook)Google Brain
初始版本2003201720162015
软件许可证GNU LGPLAGPLBSDApache 2.0
开源YesYesYesYes
平台Cross-platformLinux, macOS, WindowsLinux, macOS, WindowsLinux, macOS, Windows,[47] Android
编写语言C++Python, C++, OpenCLPython, C, C++, CUDAC++, Python, CUDA
接口C++Python, C++Python, C++, JuliaPython (Keras), C/C++, Java, Go, JavaScript, R,[48] Julia, Swift
OpenMP 支持Yes?YesNo
OpenCL 支持NoSome  OpenCL ICDs are not recognizedVia  separately maintained package[45][46][46]On  roadmap[49] but already with SYCL[50] support
CUDA 支持YesNoYesYes
自动分化?YesYesYes[51]
预训练模型?YesYesYes[52]
RNNNoYesYesYes
CNNNoYesYesYes
RBM/DBNsNoYes
并行执行(多节点)?YesYesYes
积极发展YesYesYes
软件TheanoTorchWolfram  Mathematica
创建者Université de  MontréalRonan  Collobert, Koray Kavukcuoglu, Clement FarabetWolfram Research
初始版本200720021988
软件许可证BSDBSDProprietary
开源YesYesNo
平台Cross-platformLinux, macOS, Windows,[58] Android,[59] iOSWindows, macOS, Linux, Cloud computing
编写语言PythonC, LuaC++, Wolfram Language, CUDA
接口Python (Keras)Lua, LuaJIT,[60] C,  utility library for C++/OpenCL[61]Wolfram Language
OpenMP 支持YesYesYes
OpenCL 支持Under development[53]Third  party implementations[62][63]No
CUDA 支持YesYes[64][65]Yes
自动分化Yes[54][55]Through Twitter's Autograd[66]Yes
预训练模型Through Lasagne's  model zoo[56]Yes[67]Yes[68]
RNNYesYesYes
CNNYesYesYes
RBM/DBNsYesYesYes
并行执行(多节点)Yes[57]Yes[58]Yes[69]
积极发展NoNoYes
  • ^许可证这里是一个摘要,并不是完整的许可证声明。一些库可能在不同的许可证下在内部使用其他库

机器学习模型的兼容性比较

Format Name设计目标与其他格式比较

自包含

 DNN 模型

预处理和后处理用于调整和校准的运行时配置款模型互连通用平台
TensorFlow, Keras, Caffe, Torch, ONNX,算法训练No

没有/单

独的文件

在大多数格式

NoNoNoYes
ONNX算法训练Yes

没有/单

独的文件在大多数格式

NoNoNoYes

本文:「技术选型」深度学习软件如何选择?icon-default.png?t=N176https://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 年,其性能和稳定性经过了时间的验证。近期已移植…...

【信息系统项目管理师】项目管理十大知识领域记忆敲出(整体范围进度)

【信息系统项目管理师】项目管理十大知识领域记忆敲出(整体范围进度) 【信息系统项目管理师】项目管理十大知识领域记忆敲出(整体范围进度)【信息系统项目管理师】项目管理十大知识领域记忆敲出(整体范围进度&#xff…...

一起学 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 进…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

MMaDA: Multimodal Large Diffusion Language Models

CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...

安卓基础(aar)

重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

Web后端基础(基础知识)

BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...