主要内容

dlarray

用于定制训练循环的深度学习阵列

描述

深度学习阵列存储具有可选数据格式标签的数据,用于自定义训练循环,并使函数能够通过自动微分计算和使用导数。

提示

对于大多数深度学习任务,你可以使用预先训练好的网络,并使其适应你自己的数据。有关演示如何使用迁移学习重新训练卷积神经网络来对一组新图像进行分类的示例,请参见训练深度学习网络对新图像进行分类.或者,您可以从头创建和训练网络layerGraph对象具有trainNetwork而且trainingOptions功能。

如果trainingOptions函数没有为您的任务提供所需的训练选项,那么您可以使用自动区分创建自定义训练循环。要了解更多信息,请参见为自定义训练循环定义深度学习网络

创建

描述

例子

dlX= dlarray (X返回一个dlarray对象代表X.如果X是一个dlarraydlX是一份X

例子

dlX= dlarray (Xfmt格式中的数据dlX用尺寸标签按数据格式标注fmt.维度标签有助于在函数之间传递深度学习数据。有关维度标签的详细信息,请参见使用.如果X是格式化的dlarray,然后fmt替换现有格式。

例子

dlX= dlarray (v昏暗的接受一个向量v和一个单一的字符格式昏暗的,并返回一个列向量dlarray.第一个维度dlX有尺寸标签昏暗的,第二个维度(单维度)具有维度标签“U”

输入参数

全部展开

数据数组,指定为数据类型的数值数组,一个逻辑数组,gpuArray对象,或dlarray对象。X一定要满,不能疏。

例子:兰特(23)* 31日23日

数据类型:||逻辑
复数支持:万博1manbetx是的

数据格式,指定为字符串标量或字符向量。字符串中的每个字符必须是以下维度标签之一:

  • “S”——空间

  • “C”——频道

  • “B”——批

  • “T”——时间

  • “U”——未指明的

的任意数量“S”而且“U”标签。属性中最多只能指定一个“C”“B”,“T”标签。

的每个元素fmt标记输入数据的匹配维度。如果fmt未按所列顺序排列(“年代”紧随其后的是“C”等等),然后dlarray隐式置换两者fmt与数据匹配的顺序不改变数据的存储。

fmt必须包含至少与输入数据的维度数相同数量的维度标签。如果指定的维度标签数量超过这个数,dlarray为附加标签创建空(单例)维度。

下表列出了常见数据类型的推荐数据格式。

数据 例子
形状 数据格式
二维图像

h——- - - - - -w——- - - - - -c——- - - - - -n数字数组,其中hwc而且n分别为图像的高度、宽度、通道数和观测次数。

“SSCB”
三维图像 h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -n数字数组,其中hwdc而且n分别为图像的高度、宽度、深度、通道数和图像观测数。 “SSSCB”
向量序列

c——- - - - - -年代——- - - - - -n矩阵,c是序列特征的数量,年代是序列长度,和n是序列观测的个数。

“施”
二维图像序列

h——- - - - - -w——- - - - - -c——- - - - - -年代——- - - - - -n数组,hw,c分别对应图像的高度、宽度和通道数,年代是序列长度,和n是图像序列观测的次数。

“SSCTB”
三维图像序列

h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -年代——- - - - - -n数组,hwd,c分别对应图像的高、宽、深、通道数,年代是序列长度,和n是图像序列观测的次数。

“SSSCTB”
特性 c——- - - - - -n数组,c是功能的数量,和n是观测的数量。 “CB”

数据向量,指定为数据类型为双精度或单精度、逻辑向量或的数值向量dlarray矢量对象。这里,“vector”指的是只有一个非单维的任何数组。

例子:兰德(100 1)

尺寸标签,指定为允许类型的单个字符fmt

例子:“S”

例子:“年代”

输出参数

全部展开

深度学习数组,返回为dlarray对象。dlX使用以下命令实现自动区分dlgradient而且dlfeval.如你提供fmt参数,dlX有标签。

  • 如果X是数字数组或逻辑数组,dlX包含其数据,可能由于中的数据格式而重新排序fmt

  • 如果X是一个gpuArray的数据dlX也在GPU上。后续计算使用dlX均在GPU上执行。

使用

dlarray数据格式使您能够执行下表中的函数,并确保数据具有适当的形状。

函数 操作 验证输入维度 影响输入维度的大小
avgpool 计算输入数据在移动的矩形(或立方)空间(“年代”)由池大小参数定义的区域。 “年代” “年代”
batchnorm 规范每个通道中包含的值(“C”)的输入资料。 “C”
crossentropy 计算估计值和目标值之间的交叉熵,按批处理的大小平均(“B”)维度。 “年代”“C”“B”“T”“U”(估计值和目标数组必须具有相同的大小。) “年代”“C”“B”“T”“U”(输出是一个未格式化的标量。)
dlconv 使用滤波器数组计算输入数据的深度学习卷积,匹配空间(“年代”)和(通道的函数)(“C”)输入的维度,并添加一个恒定的偏差。 “年代”“C” “年代”“C”
dltranspconv 使用滤波器数组计算输入数据的深度学习转置卷积,匹配空间(“年代”)和(通道的函数)(“C”)输入的维度,并添加一个恒定的偏差。 “年代”“C” “年代”“C”
fullyconnect 计算输入数据的加权和,并对每批应用偏差(“B”)和时间(“T”)维度。 “年代”“C”“U” “年代”“C”“B”“T”“U”(输出总是有数据格式“CB”“CT”,或“施”.)
格勒乌

对输入数据应用门控循环单元计算。

“年代”“C”“T” “C”
lstm

对输入数据应用长短期记忆计算。

“年代”“C”“T” “C”
maxpool 计算输入数据在移动的矩形空间(“年代”)由池大小参数定义的区域。 “年代” “年代”
maxunpool 计算空间(“年代”)维度。 “年代” “年代”
均方误差 计算估计值与目标值之间的半均方误差,并以批处理的大小为平均值(“B”)维度。 “年代”“C”“B”“T”“U”(估计值和目标数组必须具有相同的大小。) “年代”“C”“B”“T”“U”(输出是一个未格式化的标量。)
softmax 将softmax激活应用于每个通道(“C”)的输入资料。 “C”

这些函数要求每个维度都有一个标签。通过将第一个输入作为格式化的格式提供,可以指定维度标签格式dlarray,或使用the“DataFormat”函数的名称-值参数。

dlarray的维度标签排序“SCBTU”.这种强制消除了操作中隐式匹配输入之间标签的模糊语义。dlarray还强制维度标签“C”“B”,“T”每个最多只能出现一次。使用这些维度标签的函数对每个标签最多接受一个维度。

dlarray控件关联的数据格式dlarray会变暗),删除数据格式(stripdims),并获取与特定维度标签相关联的维度(finddim).

有关如何dlarray使用格式进行操作,请参见显著的dlarray行为

对象的功能

avgpool 将数据池化为空间维度上的平均值
batchnorm 对每个通道的所有观测数据进行独立的归一化
crossentropy 分类任务的交叉熵损失
会变暗 尺寸标签dlarray
dlconv 深度学习卷积
dlgradient 使用自动区分计算自定义训练循环的梯度
dltranspconv 深度学习转置卷积
extractdata dlarray
finddim 查找带有指定标签的尺寸
fullyconnect 求和所有加权输入数据并应用偏差
格勒乌 门控循环装置
leakyrelu 应用泄漏整流线性单元激活
lstm 长短期记忆
maxpool 将数据池到最大值
maxunpool 取消最大池化操作的输出
均方误差 半均方误差
线性整流函数(Rectified Linear Unit) 应用整流线性单元激活
乙状结肠 应用sigmoid激活
softmax 应用softmax激活通道维度
stripdims 删除dlarray数据格式

一个dlarray还允许函数进行数值、矩阵和其他操作。完整列表见支持dlarray的函数列表万博1manbetx

例子

全部折叠

创建一个非格式化的dlarray从矩阵中。

X = randn(3,5);dlX = dlarray(X)
dlX = 3x5 dlarray 0.5377 0.8622 -0.4336 2.7694 0.7254 1.8339 0.3188 0.3426 -1.3499 -0.0631 -2.2588 -1.3077 3.5784 3.0349 0.7147

创建一个dlarray具有包含维度标签的数据格式的“年代”而且“C”

X = randn(3,5);dlX = dlarray(X,“SC”
dlX = 3(S) x 5(C) dlarray 0.5377 0.8622 -0.4336 2.7694 0.7254 1.8339 0.3188 0.3426 -1.3499 -0.0631 -2.2588 -1.3077 3.5784 3.0349 0.7147

如果以相反的顺序指定尺寸标签,dlarray隐式地重新排序底层数据。

dlX = dlarray(X,“CS”
dlX = 5(S) x 3(C) dlarray 0.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077 -0.4336 0.3426 3.5784 2.7694 -1.3499 3.0349 0.7254 -0.0631 0.7147

创建一个dlarray带有第一个维度标签的向量“T”.第二个维度的标签dlarray自动创建,是“U”

X = randn(6,1);dlX = dlarray(X,“T”
dlX = 6(T) x 1(U) dlarray 0.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077

如果你指定一个行向量Xdlarray隐式地将结果重新排序为列向量。

X = X';dlX = dlarray(X,“T”
dlX = 6(T) x 1(U) dlarray 0.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077

提示

扩展功能

版本历史

R2019b引入

全部展开