removeParameter
删除参数ONNXParameters
对象
描述
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:[weights, bias, stride, dilationFactor, padding, dataFormat, 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:[weights, bias, stride, dilationFactor, padding, dataFormat, NumDims.]fc_2] = prepareConvArgs(Vars. fc_2)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:[weights, bias, stride, dilationFactor, padding, dataFormat, 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(params,“fc_2_B”);params = removeParameter(params,“fc_2_W”);params = removeParameter(params,“ConvStride1010”);params = removeParameter(params,“ConvDilationFactor1011”);params = removeParameter(params,“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:[weights, bias, stride, dilationFactor, padding, dataFormat, 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:[weights, bias, stride, dilationFactor, padding, dataFormat, 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
对象
网络参数,用ONNXParameters
对象。参数个数
包含导入的ONNX™模型的网络参数。
的名字
- - - - - -参数名称
特征向量|字符串标量
参数的名称,指定为字符向量或字符串标量。
例子:“conv2_W”
例子:“conv2_Padding”
输出参数
参数个数
—网络参数说明
ONNXParameters
对象
网络参数,返回为ONNXParameters
对象。参数个数
包含由更新的网络参数removeParameter
.
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。