Dlarray
代码生成的限制
推荐使用
对于代码生成,请使用Dlarray
(深度学习工具箱)创建深度学习阵列的功能。例如,假设您有一个预计dlnetwork
(深度学习工具箱)网络对象mynet.mat
垫子。要预测该网络的响应,请在MATLAB中创建一个入口点功能®如本代码所示。
功能a = foo(in)dlin = dlarray(in,'SSC');执着的dlnet;如果isempty(dlnet)dlnet = coder.loaddeeplearningnetwork('mynet.mat');结尾dla =预测(DLNET,DLIN);a = extractdata(dla);结尾
限制
对于深度学习阵列,代码生成具有以下局限性:
数据格式参数
Dlarray
对象必须是编译时常数。例如,功能out = foo()dla = dlarray(一个(5,4),,'SSC');%fmt'SSC'是恒定的。。。结尾
数据输入到
Dlarray
对象必须是固定大小的。例如,Dlarray
DLA
不支持万博1manbetx一个
是可变大小的。功能dla = foo()a =一个(5,4);coder.varsize('一个')%“ A”是可变尺寸的。dla = dlarray(a,'SSC');%错误:不支持。万博1manbetx结尾
代码生成不支持创建万博1manbetx
Dlarray
通过使用coder.typeof
具有上限尺寸的功能和指定的可变尺寸。例如,功能dla = foo()a = dlarray(一个(5,4),,'SC');a_type = coder.typeof(a,[5 10],[1 0]);%错误:不支持。万博1manbetx结尾
代码生成支持使用万博1manbetx
coder.typeof
没有大小参数。例如,a = dlarray(一个(5,4),'SC');a_type = coder.typeof(a);
代码生成报告s not display the size of the
Dlarray
目的。大小总是显示为1x1
。在Matlab,
Dlarray
执行标签的顺序'SCBTU'
。该执法消除了操作中的模棱两可的语义,这些语义隐含地匹配输入之间的标签。在MEX代码生成期间,这种行为模仿。但是,对于独立代码生成(例如静态,动态库或可执行文件),数据格式遵循规范FMT
争论Dlarray
目的。一个s a result, if the input or output of an entry-point function is aDlarray
对象及其标签顺序不是'SCBTU'
,然后数据布局将在MATLAB环境和独立代码之间有所不同。例如,考虑一个函数
foo
与Dlarray
对象作为输出。功能DLA= foo() rng默认dla = dlarray(rand(5,4),'公元前');结尾
在Matlab,
DLA
是4(c)
-经过-5 (B)
。dlA = 4(C) × 5(B) dlarray 0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785 0.5469 0.9575 0.9649 0.1576 0.9706 0.9572 0.4854 0.8003 0.1419 0.4218 0.9157 0.7922 0.9595
对于独立代码生成,
DLA
是5 (B)
-经过-4(c)
。对于代码生成,
Dlarray
输入到预测
方法的方法dlnetwork
对象必须是单身的
数据类型。
也可以看看
对象
相关示例
更多关于
- Dlarray的代码生成
- 定义自定义培训循环,损失功能和网络(深度学习工具箱)
- 使用自定义培训循环的火车网络(深度学习工具箱)
- 使用dlnetwork对象进行预测(深度学习工具箱)