帮助中心帮助中心
dlnetwork
预测
dlarray
计算深度学习网络输出推理
自从R2019b
X Y =预测(净)
Y =预测(XM净,X1,…)
(日元…,YN)=预测(___)
(日元…,YK] = predict(___、“输出”layerNames)
(___)=预测(___,加速度,加速度)
(___、州)=预测(___)
一些层深度学习在训练和推理上的表现也不同(预测)。例如,在培训期间,辍学层随机输入元素设置为零,防止过度拟合,但在推理,辍学层不改变输入。
计算网络输出推理,使用预测函数。计算网络输出培训,使用向前函数。为预测SeriesNetwork和DAGNetwork对象,看到预测。
向前
SeriesNetwork
DAGNetwork
提示
为预测SeriesNetwork和DAGNetwork对象,看到预测。
例子
Y=预测(净,X)返回网络输出Y在推理给出输入数据X和网络净有一个输入和一个输出。
Y=预测(净,X)
Y
净
X
Y=预测(净,X1,…, XM)返回网络输出Y在推理的米输入X1,…, XM和网络净有米输入和一个输出。
Y=预测(净,X1,…, XM)
米
X1,…, XM
(日元…,YN)=预测(___)返回N输出日元、…YN在推理网络N输出使用任何以前的语法。
N
日元
YN
(日元…,YK] = predict(___“输出”,layerNames)返回输出日元、…即在推理为指定的层使用任何以前的语法。
(日元…,YK] = predict(___“输出”,layerNames)
layerNames
即
(___)=预测(___“加速度”,加速度)还指定了性能优化使用推理过程中,除了输入参数在以前的语法。
(___)=预测(___“加速度”,加速度)
加速度
(___,状态)=预测(___)还返回更新的网络状态。
(___,状态)=预测(___)
状态
全部折叠
这个例子展示了如何使用作出预测dlnetwork对象数据分割到mini-batches。
对于大型的数据集,或者当预测硬件有限的内存,将数据分拆为mini-batches作出预测。进行预测时SeriesNetwork或DAGNetwork对象时,预测函数自动将输入数据分为mini-batches。为dlnetwork对象,您必须手动将数据分成mini-batches。
负载dlnetwork对象
加载一个训练dlnetwork对象和相应的类。
s =负载(“digitsCustom.mat”);dlnet = s.dlnet;类= s.classes;
负荷预测的数据
负荷预测的数字数据。
digitDatasetPath = fullfile (matlabroot,“工具箱”,“nnet”,“nndemos”,…“nndatasets”,“DigitDataset”);imd = imageDatastore (digitDatasetPath,…“IncludeSubfolders”,真正的);
作出预测
循环的mini-batches测试数据并作出预测使用自定义预测循环。
使用minibatchqueue处理和管理mini-batches图像。指定一个mini-batch大小为128。设置读取图像数据存储的大小属性mini-batch大小。
minibatchqueue
为每个mini-batch:
使用自定义mini-batch预处理功能preprocessMiniBatch(在这个例子中定义)将数据合并到一个批处理和图像正常化。
preprocessMiniBatch
格式的图像尺寸“SSCB”(空间、空间、通道、批)。默认情况下,minibatchqueue把数据转换为对象dlarray对象与基本类型单。
“SSCB”
单
对GPU如果一个可用作预测。默认情况下,minibatchqueue将输出转换为对象gpuArray如果一个GPU是可用的。使用GPU需要并行计算工具箱™和支持GPU设备。万博1manbetx支持设备的信息,请参阅万博1manbetxGPU计算的需求(并行计算工具箱)。
gpuArray
miniBatchSize = 128;洛桑国际管理发展学院。ReadSize = miniBatchSize;兆贝可= minibatchqueue (imd,…“MiniBatchSize”miniBatchSize,…“MiniBatchFcn”@preprocessMiniBatch,…“MiniBatchFormat”,“SSCB”);
循环的minibatches数据并作出预测使用预测函数。使用onehotdecode函数来确定类标签。存储预测类标签。
onehotdecode
numObservations =元素个数(imds.Files);YPred =字符串(1、numObservations);预测= [];%在mini-batches循环。而hasdata(兆贝可)% mini-batch读取的数据。dlX =下一个(兆贝可);%使用预测函数进行预测。dlYPred =预测(dlnet dlX);%确定相应的类。predBatch = onehotdecode (dlYPred类1);预测=[预测predBatch];结束
可视化的一些预测。
idx = randperm (numObservations 9);图为i = 1:9次要情节(3 3 i) i = imread (imds.Files {idx (i)});标签=预测(idx (i));imshow (I)标题(”的标签:“+字符串(标签)结束
Mini-Batch预处理功能
的preprocessMiniBatch使用以下步骤:预处理数据函数
从传入的单元阵列提取数据和连接到一个数字数组。连接在第四维度添加每个图像的三维空间,作为一个单通道维度。
标准化之间的像素值0和1。
0
1
函数X = preprocessMiniBatch(数据)%从细胞中提取图像数据和连接X =猫(4、数据{:});%图像正常化。X = X / 255;结束
TaylorPrunableNetwork
这个论点可以代表这两种:
网络定制培训循环,指定为一个dlnetwork对象。
自定义网络修剪循环,指定为一个TaylorPrunableNetwork对象。
修剪深神经网络,你需要深度学习工具箱™模型量化图书馆万博1manbetx支持包。这种支持包万博1manbetx是一个免费的插件,你可以下载使用附加Explorer。另外,看到深度学习工具箱量化模型库。
输入数据,指定为一个格式化的dlarray。更多信息dlarray格式,请参见fmt输入参数的dlarray。
fmt
层提取输出,指定为字符串数组或单元阵列特征向量包含图层名称。
如果layerNames(我)对应于一层和一个输出,然后layerNames(我)层的名称。
layerNames(我)
如果layerNames(我)对应于一层具有多个输出layerNames(我)是图层名称后面的性格”/”,输出层的名称:“layerName / outputName”。
/
“layerName / outputName”
“汽车”
墨西哥人的
“没有”
性能优化,指定为逗号分隔组成的“加速”和下列之一:
“加速”
“汽车”——自动应用一些优化适合输入网络和硬件资源。
墨西哥人的——编译和执行一个墨西哥人的功能。此选项仅在使用GPU可用。输入数据必须存储或网络可学的参数gpuArray对象。使用GPU需要并行计算工具箱™和支持GPU设备。万博1manbetx支持设备的信息,请参阅万博1manbetxGPU计算的需求(并行计算工具箱)。如果并行计算工具箱或合适的GPU不可用,那么软件返回一个错误。
“没有”——禁用所有加速度。
默认的选项是“汽车”。如果“汽车”MATLAB是指定的,®将大量的兼容优化。如果你使用“汽车”选项,MATLAB不生成一个墨西哥人的功能。
使用“加速”选项“汽车”和墨西哥人的可以提供性能优势,但在初始运行时间增加为代价的。后续调用与兼容的参数是更快。使用性能优化计划多次调用该函数时使用新的输入数据。
的墨西哥人的选项生成并执行一个墨西哥人函数基于网络和参数在函数调用中使用。你可以有几个墨西哥人函数与一个网络。结算网络变量也清除任何墨西哥人功能与网络有关。
的墨西哥人的选项仅当你使用GPU。你必须有一个C / c++编译器安装和GPU编码器™界面深度学习支持包。万博1manbetx安装包使用MATLAB中万博1manbetx的扩展浏览器的支持。设置说明,请参阅墨西哥人设置(GPU编码器)。GPU编码器不是必需的。
的墨西哥人的选择有以下限制:
的状态不支持输出参数。万博1manbetx
只有单精密的支持。万博1manbetx输入数据或网络可学的参数必须基本类型单。
网络不连接到输入不支持输入层。万博1manbetx
追踪dlarray不支持对象。万博1manbetx这意味着墨西哥人的选项不支持内部调用万博1manbetxdlfeval。
dlfeval
并不是所有层都受支持。万博1manbetx支持层的列表,请参阅万博1manbetx万博1manbetx支持层(GPU编码器)。
你不能使用MATLAB编译器™当使用部署您的网络墨西哥人的选择。
量化网络的墨西哥人的选择需要CUDA®使英伟达®GPU计算能力6.1、6.3或更高版本。
例子:“加速”、“墨西哥人的
“加速”、“墨西哥人的
输出数据,返回一个格式化的dlarray。更多信息dlarray格式,请参见fmt输入参数的dlarray。
更新网络状态,作为一个表返回。
网络状态是一个表有三列:
层——层名称指定为一个字符串标量。
层
参数——状态参数名称,指定为字符串标量。
参数
价值——指定为一个状态参数值dlarray对象。
价值
层状态包含信息计算层操作期间被保留用于后续向前传球的层。例如,LSTM层的细胞状态和隐藏状态,或在批处理运行统计数据归一化层。
对复发性层,例如LSTM层,HasStateInputs属性设置为1(真正的),状态表不包含条目的状态的层。
HasStateInputs
更新的状态dlnetwork使用状态财产。
提供最佳的性能,深度学习在MATLAB中使用GPU不能保证是确定的。根据您的网络体系结构,在一些情况下你可能会得到不同的结果在使用GPU训练两个相同的网络或有两个预测使用相同的网络和数据。
使用笔记和限制:
c++代码生成支持下面的语法:万博1manbetx
(日元…,YN)=预测(__)
(日元…,YK] = predict(__,'Outputs',layerNames)
输入数据X不得有变量的大小。大小必须固定在代码生成时间。
的dlarray的输入预测必须是一个方法单数据类型。
GPU代码生成支持下面的语法:万博1manbetx
代码生成TensorRT库不支持标记作为输出通过一个输入层万博1manbetx(日元…,YK] = predict(__,'Outputs',layerNames)语法。
这个函数运行在GPU上如果有一方或者双方都满足以下条件:
任何内部网络可学的参数的值net.Learnables.Value是dlarray对象的基础数据类型gpuArray
net.Learnables.Value
输入参数X是一个dlarray基础数据的类型gpuArray
有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
全部展开
为dlnetwork对象时,状态输出参数返回的预测函数是一个表包含状态参数名称和值对每一层的网络。
从R2021a,状态值dlarray对象。这种变化使得当使用更好的支持万博1manbetxAcceleratedFunction对象。加速深度学习函数,经常改变输入值,例如,一个包含网络的输入状态,必须指定为经常变化的值dlarray对象。
AcceleratedFunction
在以前的版本中,状态值数字数组。
在大多数情况下,您不需要更新你的代码。如果你的代码需要数字状态值数组,然后复制之前的行为,提取数据的状态值手动使用extractdata函数与dlupdate函数。
extractdata
dlupdate
状态= dlupdate (@extractdata net.State);
dlarray|dlgradient|dlfeval|向前|dlnetwork|TaylorPrunableNetwork
dlgradient
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
选择一个网站翻译内容,看到当地事件和提供。根据你的位置,我们建议您选择:。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。
联系你当地的办公室