主要内容

dlarray

深度学习数组自定义训练循环

描述

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

提示

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

如果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日

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

数据格式,指定为字符向量或字符串标量。每个字符在fmt必须是下列尺寸标签之一:

  • 年代——空间

  • C——频道

  • B——批观测

  • T-时间或顺序

  • U——未指明的

您可以指定任意数量的年代U标签。每个参数最多只能指定一个CB,T标签。

的每个元素fmt的匹配尺寸dlX.如果fmt并非按所列顺序排列(“年代”紧随其后的是“C”等等),然后dlarray隐式排列两个fmt与数据的顺序匹配而不改变数据的存储方式。

fmt尺寸标签的数量必须至少与dlX.如果指定的维度标签数量超过这个数,dlarray为附加标签创建空(单例)维度。

下表为常用数据类型的推荐数据格式。

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

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

“SSCB”
三维图像 h——- - - - - -w——- - - - - -d——- - - - - -c——- - - - - -n数字数组,hwdcn分别为图像的高度、宽度、深度、通道数和图像观测次数。 “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”

有关如何在深度学习函数中使用数据格式的信息,请参见使用

例子:“单边带”

例子:“CBUSS”,这dlarray重新排列,“SSCBU”

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

例子:兰德(100 1)

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

例子:“S”

例子:“年代”

输出参数

全部展开

深度学习数组,返回为dlarray对象。dlX使用以下方法实现自动区分dlgradientdlfeval.如果你提供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,或使用“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) 应用整流线性单元激活
乙状结肠 应用乙状结肠激活
softmax 对通道维度应用softmax激活
stripdims 删除dlarray数据格式

一个dlarray也允许函数的数字,矩阵,和其他操作。查看完整的列表支持dlarray的函数列表金宝app

例子

全部折叠

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

X = randn(3、5);dlX = dlarray (X)
dlX = 3x5美元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)美元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)美元0.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077

提示

扩展功能

介绍了R2019b