removeParameter
描述
params = removeParameter
指定的参数参数个数
,名字
)名字
从ONNXParameters
对象参数个数
。
例子
删除导入ONNX模型函数中的参数
将保存为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_1
,fc_2
,fc_3
,打开模型功能simplenetFcn
。
开放simplenetFcn
向下滚动到函数中的层定义simplenetFcn
。下面的代码显示了层的定义fc_1
,fc_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_3
来Vars.fc_1
。
开放simplenetFcn
下面的代码显示了层fc_1
和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_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);
输入参数
参数个数
- - - - - -网络参数
ONNXParameters
对象
网络参数,指定为anONNXParameters
对象。参数个数
包含已导入ONNX™模型的网络参数。
名字
- - - - - -参数名称
特征向量|字符串标量
参数的名称,指定为字符向量或字符串标量。
例子:“conv2_W”
例子:“conv2_Padding”
输出参数
参数个数
—网络参数
ONNXParameters
对象
网络参数,作为参数返回ONNXParameters
对象。参数个数
包含更新的网络参数removeParameter
。
版本历史
在R2020b中引入
Abrir比如
Tiene una versión modificada de este ejemploo。是否对所有的修改进行了修改?
MATLAB编程
在MATLAB中,该函数对应于一个最基本的函数:
在MATLAB中,用MATLAB编写了仿真程序。Los navegadores web no admit commandos de MATLAB。
你亦可选择下列网址:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。