主要内容

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日

数据格式,指定为字符向量或字符串标量。每个字符在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数字数组,hwdcn分别为图像的高度、宽度、深度、通道数和图像观测次数。 “SSSCB”
向量序列

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

“认知行为治疗”
二维图像序列

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

“SSCTB”
三维图像序列

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

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

的信息fmt,请参阅使用

例子:“单边带”

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

数据向量,指定为数据类型为双或单的数字向量,逻辑向量,gpuArray矢量对象,或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提供删除标签的函数(stripdims),获取与标签相关联的维度(finddim),并列出与dlarray会变暗).

要了解更多关于如何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的函数列表万博1manbetx

例子

全部折叠

创建一个标记dlarray从一个矩阵。

rng默认的%的再现性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”

rng默认的%的再现性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”

rng默认的%的再现性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