主要内容

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日

数据类型:||逻辑
复数的支持:是的

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

  • “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”(Output是一个未格式化的标量。)
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”(Output是一个未格式化的标量。)
softmax 对每个通道应用softmax激活(“C”)的输入资料。 “C”

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

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

dlarray对象关联的数据格式dlarray会变暗),删除数据格式(stripdims),并获取与特定尺寸标签相关联的尺寸(finddim).

有关如何adlarray使用格式行为,请参见著名的dlarray行为

对象的功能

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

一个dlarray还允许用于数值、矩阵和其他操作的函数。查看完整的列表dlarray支持的函数列表

例子

全部折叠

创建一个非格式化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

全部展开

Baidu
map