主要内容

removeParameter

移除参数ONNXParameters对象

自从R2020b

    描述

    例子

    params = removeParameter参数个数名字指定的参数名字ONNXParameters对象参数个数

    例子

    全部折叠

    将保存为ONNX格式的网络作为函数导入,并修改网络参数。

    导入预训练simplenet3fc.onnx网络作为一个功能。simplenet3fc是一个简单的卷积神经网络训练数字图像数据。有关如何创建类似的网络的更多信息simplenet3fc,请参阅创建简单的图像分类网络

    进口simplenet3fc.onnx使用importONNXFunction,它返回ONNXParameters对象,该对象包含网络参数。该函数还在包含网络架构的当前文件夹中创建一个新的模型函数。指定模型函数的名称为simplenetFcn

    params = importONNXFunction(“simplenet3fc.onnx”“simplenetFcn”);
    包含导入ONNX网络的函数已保存到simplenetFcn.m文件中。要学习如何使用这个函数,请键入:help simplenetFcn。

    显示训练期间更新的参数(参数个数。可学的)和训练时保持不变的参数(参数个数。Nonlearnables).

    参数个数。可学的
    ans =带有字段的结构体:imageinput_Mean:[1×1 dlarray] conv_W:[5×5×1×20 dlarray] conv_B:[20×1 dlarray] batchnorm_scale:[20×1 dlarray] batchnorm_B:[20×1 dlarray] fc_1_W:[24×24×20×20 dlarray] fc_1_B:[20×1 dlarray] fc_2_W:[1×1×20×20 dlarray] fc_2_B:[20×1 dlarray] fc_3_W:[1×1×20×10 dlarray] fc_3_B:[10×1 dlarray]
    参数个数。Nonlearnables
    ans =带有字段的结构体:ConvStride1004:[2×1 dlarray] ConvDilationFactor1005:[2×1 dlarray] ConvPadding1006:[4×1 dlarray] ConvStride1007:[2×1 dlarray] ConvDilationFactor1008:[2×1 dlarray] ConvPadding1009:[4×1 dlarray] ConvStride1010:[2×1 dlarray] ConvDilationFactor1011:[2×1 dlarray] ConvPadding1012:[4×1 dlarray] ConvStride1013:[2×1 dlarray] ConvDilationFactor1014:[2×1 dlarray] ConvPadding1015:[4×1 dlarray]

    网络具有代表三个完全连接层的参数。看卷积层的参数fc_1fc_2,fc_3,打开模型功能simplenetFcn

    开放simplenetFcn

    向下滚动到函数中的层定义simplenetFcn。下面的代码显示了层的定义fc_1fc_2,fc_3

    % Conv:[权重,偏差,步幅,膨胀因子,填充,数据格式,NumDims。]fc_1] = prepareConvArgs(Vars. fc_1)。fc_1_W, var。fc_1_B, var。ConvStride1007, var。ConvDilationFactor1008, var。convpadding1009,1, NumDims。relu1001 NumDims.fc_1_W);Vars.fc_1= dlconv(Vars.relu1001, weights, bias,“步”步,“DilationFactor”dilationFactor,“填充”填充,“DataFormat”, dataFormat);% Conv:[权重,偏差,步幅,膨胀因子,填充,数据格式,NumDims。]fc_2] = prepareConvArgs(Vars。fc_2_W, var。fc_2_B, var。ConvStride1010, var。ConvDilationFactor1011, var。convpadding1012,1, NumDims。fc_1 NumDims.fc_2_W);var。fc_2= dlconv(Vars.fc_1, weights, bias,“步”步,“DilationFactor”dilationFactor,“填充”填充,“DataFormat”, dataFormat);% Conv:[权重,偏差,步幅,膨胀因子,填充,数据格式,NumDims。]fc_3] = prepareConvArgs(Vars. fc_3)。fc_3_W, var。fc_3_B, var。ConvStride1013, var。ConvDilationFactor1014, var。convpadding1015,1, NumDims。fc_2 NumDims.fc_3_W);var。fc_3= dlconv(Vars.fc_2, weights, bias,“步”步,“DilationFactor”dilationFactor,“填充”填充,“DataFormat”, dataFormat);

    可以删除全连接层的参数fc_2降低计算复杂度。检查前一层的输出尺寸和后一层的输入尺寸,然后从参数个数。在本例中,是前一层的输出大小fc_1是20,下一层的输入大小是多少fc_3也是20。

    删除图层的参数fc_2通过使用removeParameter

    params = removeParameter(“fc_2_B”);params = removeParameter(“fc_2_W”);params = removeParameter(“ConvStride1010”);params = removeParameter(“ConvDilationFactor1011”);params = removeParameter(“ConvPadding1012”);

    显示更新后的可学习和不可学习参数。

    参数个数。可学的
    ans =带有字段的结构体:imageinput_Mean:[1×1 dlarray] conv_W:[5×5×1×20 dlarray] conv_B:[20×1 dlarray] batchnorm_scale:[20×1 dlarray] batchnorm_B:[20×1 dlarray] fc_1_W:[24×24×20×20 dlarray] fc_1_B:[20×1 dlarray] fc_3_W:[1×1×20×10 dlarray] fc_3_B:[10×1 dlarray]
    参数个数。Nonlearnables
    ans =带有字段的结构体:ConvStride1004:[2×1 dlarray] ConvDilationFactor1005:[2×1 dlarray] ConvPadding1006:[4×1 dlarray] ConvStride1007:[2×1 dlarray] ConvDilationFactor1008:[2×1 dlarray] ConvPadding1009:[4×1 dlarray] ConvStride1013:[2×1 dlarray] ConvDilationFactor1014:[2×1 dlarray] ConvPadding1015:[4×1 dlarray]

    修改模型功能的体系结构以反映中的更改参数个数所以你可以用网络来预测新的参数或者重新训练网络。打开模型功能simplenetFcn。然后,移除完全连接的图层fc_2,并改变卷积运算的输入数据dlconv为层fc_3Vars.fc_1

    开放simplenetFcn

    下面的代码显示了层fc_1fc_3

    % Conv:[权重,偏差,步幅,膨胀因子,填充,数据格式,NumDims。]fc_1] = prepareConvArgs(Vars. fc_1)。fc_1_W, var。fc_1_B, var。ConvStride1007, var。ConvDilationFactor1008, var。convpadding1009,1, NumDims。relu1001 NumDims.fc_1_W);Vars.fc_1= dlconv(Vars.relu1001, weights, bias,“步”步,“DilationFactor”dilationFactor,“填充”填充,“DataFormat”, dataFormat);% Conv:[权重,偏差,步幅,膨胀因子,填充,数据格式,NumDims。]fc_3] = prepareConvArgs(Vars. fc_3)。fc_3_W, var。fc_3_B, var。ConvStride1013, var。ConvDilationFactor1014, var。convpadding1015,1, NumDims。fc_2 NumDims.fc_3_W);var。fc_3= dlconv(Vars.fc_1, weights, bias,“步”步,“DilationFactor”dilationFactor,“填充”填充,“DataFormat”, dataFormat);

    输入参数

    全部折叠

    网络参数,指定为anONNXParameters对象。参数个数包含已导入ONNX™模型的网络参数。

    参数的名称,指定为字符向量或字符串标量。

    例子:“conv2_W”

    例子:“conv2_Padding”

    输出参数

    全部折叠

    网络参数,作为参数返回ONNXParameters对象。参数个数包含更新的网络参数removeParameter

    版本历史

    在R2020b中引入