主要内容

coder.regenerateDeepLearningParameters

生成的文件包含网络可学的和状态参数

自从R2021b

    描述

    networkFileNames= coder.regenerateDeepLearningParameters (,parameterFile)返回一个包含生成的文件名网络单元阵列可学的和状态参数。coder.regenerateDeepLearningParameters恢复这些文件基于输入的可学的和州SeriesNetworkDAGNetwork网络对象。

    networkFileNames= coder.regenerateDeepLearningParameters (dlnet,parameterFile)返回一个包含生成的文件名网络单元阵列可学的和状态参数。coder.regenerateDeepLearningParameters恢复这些文件基于输入的可学的和州dlnetwork对象。

    例子

    networkFileNames= coder.regenerateDeepLearningParameters (___,名称,值)返回一个包含生成的文件名网络单元阵列可学的和状态参数通过使用一个或多个指定的选项名称,值对参数。

    例子

    全部折叠

    这个例子展示了如何更新可学的深度学习网络和状态参数没有网络重新生成代码。

    用MATLAB写一个入口点函数®:

    1. 使用coder.loadDeepLearningNetwork函数来构造和设置一个CNN网络对象。有关更多信息,请参见负载Pretrained网络代码生成

    2. 调用预测(深度学习工具箱)预测的响应。

    函数= mLayer (, matFile) myNet = coder.loadDeepLearningNetwork (coder.const (matFile));=预测(myNet,);

    创建一个简单的网络,需要输入的图像大小4-by-5-by-3。

    inputSize = (4 5 3);我= dlarray(兰德(inputSize,“单一”),“SSCB”);巨大的= 6;层= [imageInputLayer inputSize,“名字”,“输入”,“归一化”,“没有”3)convolution2dLayer ([3] 5“名字”,“conv-1”)batchNormalizationLayer (“名字”,“batchNorm”)reluLayer (“名字”,“relu1”)transposedConv2dLayer ([2 2) 5“名字”,“transconv”)convolution2dLayer ([2 2) 5“名字”,“conv2”)reluLayer (“名字”,“relu2”)fullyConnectedLayer(特大,“名字”,“一个fc3”文件));

    创建一个初始化dlnetwork对象的层图。

    rng (0);dlnet1 = dlnetwork(层);保存(“trainedNet.mat”,“dlnet1”);

    为MKL-DNN指定代码生成参数,设置DeepLearningConfig属性到一个coder.MklDNNConfig您创建的对象coder.DeepLearningConfig

    cfg = coder.CodeConfig (墨西哥人的);cfg。TargetLang =“c++”;cfg。DeepLearningConfig = coder.DeepLearningConfig (“TargetLibrary”,“mkldnn”)

    运行codegen命令。的codegen命令生成CUDA®代码与mLayers.mMATLAB入口点函数。

    cnnMatFile = fullfile (pwd,“trainedNet.mat”);inputArgs = {im, coder.Constant (cnnMatFile)};codegen配置cfgmLayersarg游戏inputArgs报告

    调用预测输入图像和结果与MATLAB相比较。

    cnnMatFile = mLayer_mex (im) out_MATLAB = mLayer (im, cnnMatFile)
    着干活= 6 (C) x 1 (B)单一dlarray -0.0064 -0.1422 -0.0897 0.2223 0.0329 0.0365 out_MATLAB = 6 (C) x 1 (B)单一dlarray -0.0064 -0.1422 -0.0897 0.2223 0.0329 0.0365

    重新初始化dlnetwork更新可学的不同的值。

    rng (10);dlnet2 = dlnetwork(层);保存(“trainedNet.mat”,“dlnet2”);

    使用coder.regenerateDeepLearningParameters功能再生偏差文件基于网络的新的可学的和州。

    codegenDir = fullfile (pwd,“codegen /墨西哥人/ mLayer”);networkFileNames =(编码器。regenerateDeepLearningParameters (dlnet2 codegenDir))
    networkFileNames = 8×1单元阵列{cnn_trainedNet0_0_conv-1_b。本的}{cnn_trainedNet0_0_conv-1_w。本的}{cnn_trainedNet0_0_conv2_b。本的}{cnn_trainedNet0_0_conv2_w。本的}{cnn_trainedNet0_0_fc3_b。本的}{cnn_trainedNet0_0_fc3_w。本的}{cnn_trainedNet0_0_transconv_b。本“}{' cnn_trainedNet0_0_transconv_w.bin '}

    调用预测输入图像和结果与MATLAB相比较。

    清晰的mLayer_mex;新= mLayer_mex (im, cnnMatFile) outNew_MATLAB = mLayer (im, cnnMatFile)
    新= 6 (C) x 1 (B)单一dlarray 0.1408 -0.0080 0.0342 -0.0065 0.1843 0.0799 outNew_MATLAB = 6 (C) x 1 (B)单一dlarray 0.1408 -0.0080 0.0342 -0.0065 0.1843 0.0799

    输入参数

    全部折叠

    训练网络中使用代码生成指定的作为SeriesNetwork(深度学习工具箱)或者一个DAGNetwork(深度学习工具箱)对象。您可以使用一个pretrained网络(例如,通过使用googlenet函数)或通过训练自己的网络使用trainNetwork(深度学习工具箱)

    网络定制培训循环中使用代码生成指定的作为dlnetwork(深度学习工具箱)对象。

    路径包含生成的网络参数信息文件的文件夹。在代码生成过程中,软件创建networkParamsInfo_ *。斌二进制文件,其中包含网络参数信息。默认情况下,代码生成器创建这个文件codegen文件夹中。

    名称-值参数

    指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

    R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

    例子:networkFileNames = coder.regenerateDeepLearningParameters (dlnet“codegen NetworkName =“fooDL”);

    名字的c++类网络在生成的代码中,指定为一个字符或字符串向量。

    墨西哥人的工作流,当生成的墨西哥人以及相关codegen从一个位置移动到另一个文件夹,coder.regenerateDeepLearningParameters不能生成文件包含网络可学的,国家在新位置参数。设置“OverrideParameterFiles”允许参数为truecoder.regenerateDeepLearningParameters功能重新生成文件包含网络可学的,在最初的状态参数codegen的位置。

    这个参数没有影响non-MEX工作流。

    输出参数

    全部折叠

    文件名生成网络的可学的和状态参数,作为细胞数组返回。

    限制

    只有网络可学的和州可以使用更新coder.regenerateDeepLearningParameters函数。对于代码生成器不支持修改,就会抛出一个错误消息。万博1manbetx例如,使用coder.regenerateDeepLearningParameters改变比例因子后漏水的ReLU层抛出以下错误消息作为比例因子不是一个网络可学的。

    网络体系结构已经修改自上次代码生成。无法适应网络提供了生成的代码。重新生成代码所提供的网络来反映网络的变化。有关更多信息,请参见限制代码生成后再生网络参数。

    版本历史

    介绍了R2021b