主要内容

代码生成的dlarray

深度学习阵列使用可选的数据格式标签存储数据,用于定制训练循环,并允许函数通过自动微分计算和使用导数。要了解关于自定义训练循环、自动区分和深度学习数组的更多信息,请参见<一个href="//www.ru-cchi.com/help/deeplearning/deep-learning-custom-training-loops.html" class="a">深度学习自定义训练循环(深度学习工具箱)

代码生成支持格式化和非格式化深度学习数组。dlarray对象包含gpuArrays也支持代码生成。当您使用带有CPU和GPU代码生成的深度学习阵列时,请遵守以下限制:

定义dlarray对于代码生成

对于代码生成,请使用<一个href="//www.ru-cchi.com/help/deeplearning/ref/dlarray.html">dlarray(深度学习工具箱)函数创建深度学习数组。例如,假设你有一个预先训练的<一个href="//www.ru-cchi.com/help/deeplearning/ref/dlnetwork.html">dlnetwork(深度学习工具箱)中的网络对象。mynet.matMAT-file。为了预测该网络的响应,在MATLAB中创建一个入口点函数®

有两种可能:

请注意

对于代码生成,dlarray的输入预测的方法dlnetwork对象必须是数据类型。

设计1(不推荐)

在本设计实例中,输入输出到入口点函数,喷火dlarray类型。这种类型的入口点函数不推荐用于代码生成,因为在MATLAB中,dlarray强制标签的顺序“SCBTU”.在生成MEX代码时复制此行为。但是,对于静态、动态库或可执行程序等独立代码生成,数据格式遵循fmt论点的dlarray对象。因此,如果入口点函数的输入或输出是dlarray对象和它的标签顺序不是“SCBTU”,那么MATLAB环境和独立代码之间的数据布局将有所不同。

函数dlOut = foo (dlIn)持续的dlnet;如果isempty(dlnet) dlnet = code . loaddeeplearningnetwork (“mynet.mat”);结束dlOut = predict(dlnet, dlIn);结束

设计2(推荐)

在本设计实例中,输入输出为喷火的基本数据类型和dlarray对象在函数内创建。的<一个href="//www.ru-cchi.com/help/deeplearning/ref/dlarray.extractdata.html">extractdata(深度学习工具箱)的方法dlarray对象中返回的数据dlarray国防后勤局作为的输出喷火.输出一个中的数据类型与基础数据类型相同国防后勤局

相比设计1,这种入口点设计有以下优点:

  • 与独立代码生成工作流(如静态、动态库或可执行程序)更容易集成。

  • 的输出的数据格式extractdata函数具有相同的顺序(“SCBTU”)在MATLAB环境和生成的代码。

  • 提高MEX工作流程的性能。

  • 简化模型®工作流使用MATLAB函数作为Simulink本身不支持的dlarray对象。

函数a = foo(in) dlIn = dlarray(in)SSC的);持续的dlnet;如果isempty(dlnet) dlnet = code . loaddeeplearningnetwork (“mynet.mat”);结束dlA = predict(dlnet, dlIn);一个= extractdata (dlA);结束

看一个例子dlnetwork而且dlarray使用GPU Coder™,参见<一个href="//www.ru-cchi.com/help/gpucoder/ug/code-generation-for-vae-network.html" class="a">使用变分自动编码器在NVIDIA GPU上生成数字图像.

dlarray支持代码生成的对象函数

对于代码生成,您只能使用本表中列出的深度学习数组对象函数。

会变暗(深度学习工具箱)

尺寸标签dlarray

extractdata(深度学习工具箱)

从中提取数据dlarray

finddim(深度学习工具箱)

查找具有指定标签的尺寸

stripdims(深度学习工具箱)

删除dlarray标签

深度学习工具箱功能dlarray代码生成的支持

深度学习操作

函数 描述
fullyconnect(深度学习工具箱)

完全连接操作将输入乘以一个权重矩阵,然后添加一个偏置向量。

乙状结肠(深度学习工具箱)

sigmoid激活操作将sigmoid函数应用于输入数据。

softmax(深度学习工具箱)

softmax激活操作将softmax函数应用于输入数据的通道维度。

MATLAB函数dlarray代码生成的支持

一元Element-wise功能

函数 笔记和局限性
腹肌

输出dlarray是否与输入数据格式相同dlarray

量化

输出dlarray是否与输入数据格式相同dlarray

因为
cosh
csc
经验值
日志

  • 输出dlarray是否与输入数据格式相同dlarray

  • 因为dlarray不支持复数的输入dlarray必须有非负值。

证券交易委员会

输出dlarray是否与输入数据格式相同dlarray

标志
sinh
√6

  • 输出dlarray是否与输入数据格式相同dlarray

  • 因为dlarray不支持复数的输入dlarray必须有非负值。

棕褐色

输出dlarray是否与输入数据格式相同dlarray

双曲正切
uplus+
uminus-
小块土地

二进制Element-wise运营商

函数 笔记和局限性
--

如果两个dlarray输入被格式化,然后输出dlarray使用这两种数据格式的组合进行格式化。该函数使用隐式展开来组合输入。有关更多信息,请参见<一个href="//www.ru-cchi.com/help/deeplearning/ug/list-of-functions-with-dlarray-support.html" class="a">使用数据格式的隐式展开(深度学习工具箱)

++
权力.^
rdivide./
.*

还原功能

函数 笔记和局限性
的意思是
  • 输出dlarray是否与输入数据格式相同dlarray

  • “omitnan”选项不支持。

  • 如果输入dlarray在GPU上,“本地”选项不支持。

刺激
  • 输出dlarray是否与输入数据格式相同dlarray

  • “omitnan”选项不支持。

总和

极值函数

函数 笔记和局限性
装天花板

输出dlarray是否与输入数据格式相同dlarray

每股收益

  • 输出dlarray是否与输入数据格式相同dlarray

  • 使用每股收益((‘喜欢’,x))根据a的数据类型获取标量值dlarrayx

修复

输出dlarray是否与输入数据格式相同dlarray

地板上

输出dlarray是否与输入数据格式相同dlarray

马克斯
  • 当你找到单个元素的最大值或最小值时dlarray,输出dlarray是否与输入数据格式相同dlarray

  • 当在两个格式化的元素之间找到最大值或最小值元素时dlarray输入,输出dlarray具有这两种数据格式的组合。该函数使用隐式展开来组合输入。有关更多信息,请参见<一个href="//www.ru-cchi.com/help/deeplearning/ug/list-of-functions-with-dlarray-support.html" class="a">使用数据格式的隐式展开(深度学习工具箱)

  • 索引输出参数不被跟踪,不能用于自动区分。有关更多信息,请参见<一个href="//www.ru-cchi.com/help/deeplearning/ug/include-automatic-differentiation.html" class="a">在深度学习工具箱中使用自动区分(深度学习工具箱)

最小值

  • 只有语法Y =圆(X)是支持的。

  • 输出dlarray是否与输入数据格式相同dlarray

其他的数学操作

函数 笔记和局限性
结肠
  • 支持的操作包括:

    • a: b

    • b: c

    有关索引到的信息dlarray,请参阅<一个href="//www.ru-cchi.com/help/deeplearning/ug/list-of-functions-with-dlarray-support.html" class="a">索引(深度学习工具箱)

  • 所有的输入必须是实数标量。输出dlarray未格式化。

mtimes
  • 一个输入可以是格式化的dlarray只有当另一个输入是未格式化的标量时。在本例中,输出dlarray具有与格式化的相同的数据格式dlarray输入。

  • 乘以一个dlarray与一个非dlarray只有当两个输入都是非标量时,才支持稀疏矩阵。

pagemtimes
  • 一个输入可以是格式化的dlarray只有当另一个输入是未格式化的,带有标量页时。在本例中,输出dlarray具有与格式化的相同的数据格式dlarray输入。

  • 对于代码生成,每个转置选项pagemtimes必须是常数。

逻辑运算

函数 笔记和局限性
而且

如果两个dlarray输入被格式化,然后输出dlarray使用这两种数据格式的组合进行格式化。该函数使用隐式展开来组合输入。有关更多信息,请参见<一个href="//www.ru-cchi.com/help/deeplearning/ug/list-of-functions-with-dlarray-support.html" class="a">使用数据格式的隐式展开(深度学习工具箱)

情商= =

如果两个dlarray输入被格式化,然后输出dlarray使用这两种数据格式的组合进行格式化。该函数使用隐式展开来组合输入。有关更多信息,请参见<一个href="//www.ru-cchi.com/help/deeplearning/ug/list-of-functions-with-dlarray-support.html" class="a">使用数据格式的隐式展开(深度学习工具箱)

通用电气> =
gt>
< =
lt<
~ =
|

如果两个dlarray输入被格式化,然后输出dlarray使用这两种数据格式的组合进行格式化。该函数使用隐式展开来组合输入。有关更多信息,请参见<一个href="//www.ru-cchi.com/help/deeplearning/ug/list-of-functions-with-dlarray-support.html" class="a">使用数据格式的隐式展开(深度学习工具箱)

xor

大小操作函数

函数 笔记和局限性
重塑

输出dlarray是否未格式化,即使输入dlarray被格式化。

对于代码生成,尺寸尺寸必须是固定的。

挤压

二维dlarray对象不受挤压.如果输入dlarray时,该函数将删除属于单例维度的维度标签。如果输入dlarray有超过两个维度且其第三维度及以上维度为单元的,则该函数丢弃这些维度及其标签。

repelem

如果您使用u = repelem (v、n)语法,并指定在其中重复每个元素的次数<一个href="//www.ru-cchi.com/help/matlab/ref/repelem.html">repelem,输出dlarray是否即使输入也未格式化dlarray被格式化。

如果您使用B = repelem (rN, r1……)语法,并为中的每个维度指定重复因子<一个href="//www.ru-cchi.com/help/matlab/ref/repelem.html">repelem,输出dlarray是否与输入数据格式相同dlarray

repmat

输出dlarray是否与输入数据格式相同dlarray

换位操作

函数 笔记和局限性
ctranspose

如果输入dlarray则两个维度的标签必须相同。该函数隐式执行转置,仅在其他操作需要时直接执行转置。

交换

如果输入dlarray则排列必须只在具有相同标签的维度之间进行。该函数隐式执行排列,仅在其他操作需要时直接执行排列。

对于代码生成,维度顺序必须是固定的大小。

ipermute

如果输入dlarray则排列必须只在具有相同标签的维度之间进行。该函数隐式执行排列,仅在其他操作需要时直接执行排列。

对于代码生成,维度顺序必须是固定的大小。

转置.'

如果输入dlarray则两个维度的标签必须相同。该函数隐式执行转置,仅在其他操作需要时直接执行转置。

连接功能

函数 笔记和局限性

dlarray输入必须具有匹配的格式或未格式化。支持混合格式化和非格式化输入。如果有任何dlarray输入被格式化,然后输出dlarray使用相同的数据格式格式化。

对于代码生成,维度顺序为功能尺寸必须固定。

horzcat
vertcat

转换函数

函数 笔记和局限性
  • 铸造(国防后勤局,newdatatype)中复制数据dlarray国防后勤局成一个dlarray的基础数据类型newdatatype.的newdatatype选项必须是“双”“单一”,或“逻辑”.输出dlarray的数据格式与国防后勤局

  • 铸造(“喜欢”,Y)返回与。相同类型的数组Y.如果Y是一个dlarray,则输出为adlarray具有相同的基础数据类型的Y.如果Y在GPU上,那么输出就在GPU上。如果两个一个而且Ydlarray对象,然后输出dlarray是否使用与输入相同的数据格式进行格式化一个

输出是dlarray包含类型的数据

逻辑 输出是dlarray包含类型的数据逻辑
输出是dlarray包含类型的数据

比较函数

函数 笔记和局限性
isequal

  • 不支持有两个以上输入参数的语法。

  • 两个dlarray如果它们所表示的数值数据相等,并且它们都使用相同的数据格式或未格式化,则输入是相等的。

isequaln

  • 不支持有两个以上输入参数的语法。

  • 两个dlarray如果输入所表示的数值数据相等,则输入相等S等于),如果它们都使用相同的数据格式或未格式化。

数据类型和值标识函数

函数 笔记和局限性
isfloat

该软件将该函数应用于输入的底层数据dlarray

islogical
isnumeric
伊斯雷尔

因为dlarray不支持复数,此函数总是返回真正的对于一个dlarray输入。

大小识别功能

函数 笔记和局限性
iscolumn 这个函数返回真正的对于一个dlarray这是一个列向量,其中除第一个维外的每个维都是单维。例如,3 × 1 × 1dlarray是列向量。
ismatrix 这个函数返回真正的dlarray只有两个维度的对象dlarray对象,其中除前两个维度外的每个维度都是单例的。例如,3 × 4 × 1dlarray是一个矩阵。
isrow 这个函数返回真正的对于一个dlarray这是一个行向量,除第二个外的每一个维都是单维的。例如,1 × 3 × 1dlarray是行向量。
isscalar N/A
isvector 这个函数返回真正的对于一个dlarray这是行向量或列向量。请注意,isvector不考虑1 × 1 × 3吗dlarray是一个向量。
长度 N/A
ndims

如果输入dlarraydlX被格式化,然后ndims (dlX)返回维度标签的数量,即使有些标记的维度是尾随的单例维度。

元素个数 N/A
大小

如果输入dlarraydlX被格式化,然后大小(dlX)返回长度等于维度标签数量的向量,即使有些标记的维度是尾随的单例维度。

创造者的功能

函数 笔记和局限性
只有“喜欢”语法支持dlarray
兰德
真正的
0

索引

代码生成支持索引dlarray对象和显示以下行为:

  • 如果你设置海底(idx1,…,idxn) = dlX,然后海底而且dlX必须与任务兼容。

    • 数据的大小不能改变。不支持越界赋值操作。

    • 赋值语句不能添加或删除U标签。

  • 类的部分不支持删除dlarray对象的使用dlX (idx1,…,idxn) = []

另请参阅

对象

相关的例子

更多关于

Baidu
map