主要内容

使用。使用dlnetwork.目的

此示例显示如何使用a进行预测dlnetwork.通过将数据拆分为迷你批量来实现对象。

对于大数据集,或者在使用有限内存的硬件上预测时,通过将数据拆分为迷你批次来进行预测。与之预测时系列网络Dagnetwork.对象时,预测函数自动将输入数据分成迷你批次。为了dlnetwork.对象,您必须手动将数据拆分为迷你批处理。

加载dlnetwork.目的

装训练dlnetwork.对象和相应的类。

s = load(“digitscustom.mat”);dlnet = s.dlnet;classes = s.casses;

预测负荷数据

加载数字数据进行预测。

digitdatasetpath = fullfile(matlabroot,“工具箱”'nnet''nndemos'......'nndatasets''digitdataset');imd = imageDatastore (digitDatasetPath,......“IncludeSubfolders”,真的);

作出预测

循环在测试数据的迷你批量上,并使用自定义预测循环进行预测。

minibatchqueue处理和管理小批映像。指定小批处理大小为128。将镜像数据存储的read size属性设置为mini-batch大小。

对于每个迷你批处理:

  • 使用自定义迷你批处理预处理功能Preprocessminibatch.(在该示例的末尾定义)以将数据连接到批处理中并归一化图像。

  • 使用尺寸格式化图像'SSCB'(空间,空间,频道,批量)。默认情况下,minibatchqueue对象将数据转换为dlarray.底层类型的对象单身的

  • 如果有可用的话,请在GPU上进行预测。默认情况下,minibatchqueue对象将输出转换为aGPUArray.图形处理器是否可用。使用GPU需要并行计算工具箱™和支持的GPU设备。金宝app有关支持的设备的信息,请参见金宝appGPU通金宝app过发布支持(并行计算工具箱)

minibatchsize = 128;imds.readsize = minibatchsize;MBQ = Minibatchqueue(IMDS,......“迷你atchsize”,小匹马,......“MiniBatchFcn”,@preprocessminibatch,......“minibatchformat”“SSCB”);

循环在数据的小匹匹匹配项中,并使用中的预测预测功能。使用onehotdecode.函数以确定类标签。存储预测的类标签。

numobservations = numel(imds.files);ypred = strings(1,numobservations);预测= [];%循环在迷你批次。Hasdata(MBQ)%读取迷你批次数据。DLX =下一个(MBQ);%使用预测功能进行预测。dlypred =预测(Dlnet,DLX);%确定相应的类。predBatch = onehotdecode (dlYPred类1);predictions = [predictions predBatch];结尾

可视化一些预测。

idx = randperm (numObservations 9);数字为了i = 1:9子图(3,3,i)i = imread(imds.files {idx(i)});标签=预测(IDX(i));imshow(i)标题(“标签: ”+字符串(标签)结尾

Mini-Batch预处理功能

Preprocessminibatch.函数使用以下步骤预处理数据:

  1. 从传入单元格数组中提取数据并将数据连接到数字阵列中。在第四维上连接到每个图像的第三维度,用作单例通道维度。

  2. 归一化像素值之间的0.1

函数X = preprocessMiniBatch(数据)%从单元格和连接中提取图像数据X = CAT(4,数据{:});%标准化图像。X = X / 255;结尾

也可以看看

||||

相关的话题