一个mini-batch数据存储是数据存储的实现,支持批量读取数据。您可以使用小批量数据存储作为使用深度学习工具箱万博1manbetx的深度学习应用程序的培训、验证、测试和预测数据集的来源™.
要对序列、时间序列或文本数据进行预处理,可以使用本文描述的框架构建自己的迷你批处理数据存储。有关如何使用自定义迷你批处理数据存储的示例,请参见使用序列数据自定义小批量数据存储的列车网络.
使用自定义数据存储类和对象构建自定义数据存储接口。然后,使用自定义数据存储将数据带入MATLAB®.
设计您的自定义小批处理数据存储涉及从matlab.io.Datastore
和matlab.io.datastore.MiniBatchable
类,并实现所需的属性和方法。您可以选择在训练期间添加对洗牌的支持。万博1manbetx
处理需求 |
类 |
---|---|
用于深度学习工具箱中的培训、验证、测试和预测数据集的小批量数据存储 |
|
支持训练期间洗牌的迷你批量数据存储万博1manbetx |
|
MiniBatchable
数据存储实现一个自定义的迷你批处理数据存储我的数据存储
,创建一个脚本MyDatastore.m
.该脚本必须在MATLAB路径上,并且应该包含从适当的类继承的代码,并定义所需的方法。在深度学习工具箱中创建用于训练、验证、测试和预测数据集的小批数据存储的代码必须:
定义这些属性:小批量
和NumObservations
.
除了这些步骤之外,您还可以定义处理和分析数据所需的任何其他属性或方法。
请注意
如果您正在培训网络和trainingOptions
指定“洗牌”
作为“一次”
或“every-epoch”
,那么你也必须继承matlab.io.datastore.shufflable
类。有关更多信息,请参见添加对洗万博1manbetx牌的支持.
数据存储读函数必须返回表中的数据。表元素必须是标量、行向量或包含数字数组的1 × 1单元格数组。
对于只有一个输入层的网络,第一列和第二列分别指定预测器和响应。
提示
要为具有多个输入层的网络使用数据存储,请使用结合
和变换
函数创建数据存储,输出单元格数组(努明普茨
+1)列,其中努明普茨
是网络输入的数量。在本例中,第一个努明普茨
列指定每个输入的预测器,最后一列指定响应。输入的顺序由输入名称
层图的性质层
.
预测值的格式取决于数据的类型。
数据 | 预测值格式 |
---|---|
二维图像 | h-借-w-借-c数字数组,h,w,c分别是图像的高度、宽度和通道数。 |
三维图像 | h-借-w-借-d-借-c数字数组,h,w,d,c分别为图像的高度、宽度、深度和通道数量。 |
向量序列 | c-借-年代矩阵,c数列的特征数是和吗年代为序列长度。 |
二维图像序列 | h-借-w-借-c-借-年代数组,h,w,c分别对应于图像的高度、宽度和通道数,以及年代为序列长度。 mini-batch中的每个序列必须具有相同的序列长度。 |
三维图像序列 | h-借-w-借-d-借-c-借-年代数组,h,w,d,c分别对应于图像的高度、宽度、深度和通道数,以及年代为序列长度。 mini-batch中的每个序列必须具有相同的序列长度。 |
特性 | c-by-1列向量,其中c是特征的数量。 |
表元素必须包含数字标量、数字行向量或包含数字数组的1 × 1单元格数组。
的列车网络
函数不支持具有多个序列输入层的网络。万博1manbetx
响应的格式取决于任务的类型。
任务 | 格式的响应 |
---|---|
分类 | 绝对标量 |
回归 |
|
Sequence-to-sequence分类 | 1 -年代类别标签的序列,其中年代为相应预测序列的序列长度。 |
Sequence-to-sequence回归 | R-借-年代矩阵,R是响应和响应的数量年代为相应预测序列的序列长度。 |
表元素必须包含分类标量、数值标量、数值行向量或包含数值数组的1乘1单元格数组。
这个例子展示了如何创建一个自定义的迷你批处理数据存储来处理序列数据。将脚本保存到一个名为MySequenceDatastore.m
.
步骤 | 实施 |
---|---|
|
classdefMySequenceDatastore 读序列 .必须创建这个函数才能从mat文件中读取序列数据。功能数据=读取顺序(文件名)% data = readSequence(filename)从mat文件中读取序列X%文件名S =负载(文件名);数据= S.X;结束 |
要添加对洗牌的万博1manbetx支持,首先按照说明实现MiniBatchable数据存储然后更新你的实现代码MySequenceDatastore.m
致:
定义附加方法洗牌
.
此示例代码向万博1manbetxMySequenceDatastore
班级。竖直的省略号表示应该从中复制代码的位置MySequenceDatastore
实现。
步骤 | 实施 |
---|---|
|
classdefMySequenceDatastore |
如果您已经按照此处提供的所有说明进行了操作,那么您的自定义小批量数据存储的实现就完成了。在使用此数据存储之前,请使用中提供的指南对其进行鉴定自定义数据存储的测试指南.