7.数据分析--在matlab中通过nvidiageforcegpu加速深度学习计算

author author     2022-12-06     700

关键词:

0. 前言

笔者用的是华硕飞行堡垒电脑,自带2G的GPU

7.数据分析(1)

1. 基本环境

软件:MATLAB 2020a  (当前最新的matlab版本,提供了很多关于深度学习(常见的卷积神经网络和循环神经网络)的接口)

据说matlab现在只支持NVIDIA系列的显卡,matlab 2018a Neural Network Toolbox关于深度神经网络在GPU上的加速计算有以下要求:

Using a GPU requires a CUDA® enabled NVIDIA® GPU with compute capability 3.0 or higher.

即需要一个计算能力在3.0以上的带CUDA驱动的NVIDIA系列GPU才能实现GPU加速,
在matlab命令行窗口内通过‘gpuDevice’查看显卡是否具备加速功能,

7.数据分析(1)

笔者的显卡的计算能力是5.0,满足要求。

2. 显卡测试

关于GPU的基本信息和基本测试流程在这里可以找到:https://ww2.mathworks.cn/help/parallel-computing/gpu-computing.html

本篇的目的主要是如何实现GPU对深度神经网络训练过程的加速计算。为实现GPU的加速过程,不同版本的matlab对GPU的计算能力有不同的要求:

CUDA-enabled NVIDIA GPUs with compute capability 3.0 or higher. For releases 17b and earlier, compute capability 2.0 is sufficient. For releases 14a and earlier, compute capability 1.3 is sufficient.

以Create Simple Deep Learning Network for Classification示例程序为例,https://ww2.mathworks.cn/help/deeplearning/examples/create-simple-deep-learning-network-for-classification.html;jsessinotallow=b3ffae289605ec143885daccfff2

options = trainingOptions(sgdm, ...
InitialLearnRate,0.01, ...
MaxEpochs,4, ...
Shuffle,every-epoch, ...
ValidationData,imdsValidation, ...
ValidationFrequency,30, ...
Verbose,false, ...
ExecutionEnvironment,cpu,...
Plots,training-progress);

ExecutionEnvironment可以设置为cpu、gpu或者auto

示例程序以CPU进行网络训练的过程如下图所示,费时45 sec

7.数据分析(1)

笔者以GPU进行加速训练的过程如下图所示,费时21 sec

7.数据分析(1)

GPU加速了计算,相比较于CPU解决了一半时间

7.数据分析(1)

在matlab中通过带有未知参数的可变限制积分拟合数据

】在matlab中通过带有未知参数的可变限制积分拟合数据【英文标题】:datafittingbyIntegrationwithvariablelimitwithaunknownparameterinmatlab【发布时间】:2021-04-1808:35:54【问题描述】:我想用方程拟合实验数据:y=C(1)*74.826*(x/T(1))^3*integration(t^4*... 查看详情

如何在 LARAVEL_7 中通过迁移发送多个复选框

】如何在LARAVEL_7中通过迁移发送多个复选框【英文标题】:HowtoSendMultipleCheckboxthroughmigrationinLARAVEL_7【发布时间】:2021-05-0322:21:32【问题描述】:我想将选定的检查存储在单个变量中并将其发送到数据库,我只使用迁移,其他数... 查看详情

是否可以在 Matlab 中通过引用来解析结构?

】是否可以在Matlab中通过引用来解析结构?【英文标题】:IsitpossibletoparsestructbyreferenceinMatlab?【发布时间】:2014-02-2507:09:29【问题描述】:假设我有一个动态构建的结构(例如data.(casenamesc).t25s)。快速动态地访问它会使代码变... 查看详情

在 Windows 7 中通过 *** 连接时连接到 docker 机器

】在Windows7中通过***连接时连接到docker机器【英文标题】:Connectingtodockermachinewhileconnectedthrough***inWindows7【发布时间】:2017-04-1918:33:45【问题描述】:我在Windows7上运行docker-machine作为docker工具箱的一部分当我跑步时>docker-machinee... 查看详情

在 PHP 中通过 ODBC(使用 PDO)查询雪花返回不正确的数据

】在PHP中通过ODBC(使用PDO)查询雪花返回不正确的数据【英文标题】:QueryingSnowflakeviaODBC(usingPDO)inPHPreturnsincorrectdata【发布时间】:2015-12-0608:29:51【问题描述】:我正在尝试通过他们在PHP(CentOS6和7)中的ODBC驱动程序连接到Snowfl... 查看详情

在 VS 2008 中通过 MFC 使用 Windows 7 任务栏功能

】在VS2008中通过MFC使用Windows7任务栏功能【英文标题】:UseWindows7taskbarfeaturesinVS2008withMFC【发布时间】:2010-06-2110:31:40【问题描述】:是否可以通过MFC使用VisualStudio2008中的新任务栏Windows7功能?我知道在VS2010和VS2008中可以使用WTL... 查看详情

Matlab中通过fread读取多个精度二进制文件

】Matlab中通过fread读取多个精度二进制文件【英文标题】:ReadingmultipleprecisionbinaryfilesthroughfreadinMatlab【发布时间】:2011-12-2703:46:28【问题描述】:我有一个巨大的二进制文件,其中包含多个精度为\'Double\',\'Double\',\'Int32\',\'Int8\'... 查看详情

matlab中通过函数m文件定义数组x=[3,5,7,-6,8,7]求数组元素总数,最大值

在MATLAB中通过函数M文件定义数组X=[3,5,7,-6,8,7],写出求该数组元素总定义一个test.mX=[3,5,7,-6,8,7]\';disp([\'元素个数:\',num2str(length(X))])disp([\'最大元素:\',num2str(max(max(X)))])结果:参考技术AN=numel(X);%数组元素总数X_max=max(X);%数组元素最大... 查看详情

在 iOS 7.0 中通过我的 iPhone 应用程序获取 UDID [重复]

】在iOS7.0中通过我的iPhone应用程序获取UDID[重复]【英文标题】:GetUDIDthroughmyiPhoneApplicationiniOS7.0[duplicate]【发布时间】:2014-01-2810:04:08【问题描述】:我在几个月前创建了用于获取UDID的应用程序,它在iOS6上运行良好,但没有提供... 查看详情

在颤动中通过字符串获取数据

】在颤动中通过字符串获取数据【英文标题】:getdatabystringwithblocinflutter【发布时间】:2020-08-1403:13:42【问题描述】:我是Flutter的新手。我需要帮助。我有服务。我通过从Ui传递的字符串搜索数据。Future<List<MyEntity>>getByS... 查看详情

在 Laravel 中通过 Ajax 存储数据失败

】在Laravel中通过Ajax存储数据失败【英文标题】:FailedtostoredatathoughAjaxinLaravel【发布时间】:2015-02-0305:26:35【问题描述】:我正在尝试使用Laravel中的Ajax从引导模式存储数据。这是我的代码:route.phpRoute::get(\'/repository/\',\'RepositoryC... 查看详情

在java中通过asynchronousFileChannel写入时丢失数据

】在java中通过asynchronousFileChannel写入时丢失数据【英文标题】:losingdatawhilewritingthroughasynchronousFileChannelinjava【发布时间】:2013-09-2004:59:36【问题描述】:我正在尝试使用asynchronousFileChannel将日期写入文本文件。我使用AsynchronousFil... 查看详情

如何在 django 中通过 AJAX 请求传递数据?

】如何在django中通过AJAX请求传递数据?【英文标题】:HowtopassdatathroughanAJAXrequestindjango?【发布时间】:2018-11-1021:22:21【问题描述】:我想在点击页面底部时从数据库中检索数据。现在,我到目前为止:urls.pyurlpatterns=[url(r\'^$\',fee... 查看详情

matlab教程案例93在matlab中通过mex将c语言转化为matlab可执行的mexw64文件

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》目录1.软件版本2.mex指令简介 查看详情

在 Swift 2 中通过“prepareForSegue”传递数据

】在Swift2中通过“prepareForSegue”传递数据【英文标题】:Passdatavia\'prepareForSegue\'inSwift2【发布时间】:2016-03-0409:20:37【问题描述】:试图将字符串从一个视图控制器传递到另一个视图控制器(MoreDetailViewController)出现这个错误:I... 查看详情

在android中通过意图传递数据

】在android中通过意图传递数据【英文标题】:Passingdataviaintentinandroid【发布时间】:2017-11-0619:32:57【问题描述】:我有5个活动,比如活动A,B,C,D和E。每个活动都有两个buttons是和否,按钮只有我想传递给活动E的数据。我需要做以... 查看详情

在 Laravel 8 中通过循环获取数组数据

】在Laravel8中通过循环获取数组数据【英文标题】:GettingArrayDatathroughtLooponLaravel8【发布时间】:2021-10-3120:34:26【问题描述】:我正在使用一种将数组数据发送到控制器的表单。它还接收到这样的数组数据$product_unit=$inputs[\'orderPro... 查看详情

python在python中通过线性回归分析文本(代码片段)

查看详情