主要内容

quantizationDetails

显示神经网络的量化细节

描述

例子

qDetails= quantizationDetails (返回一个包含神经网络量化细节的1 × 1结构数组。返回的数据是一个带字段的结构:

  • IsQuantized——返回1(true)如果网络是量化的;否则,返回0(假)

  • TargetLibrary-用于代码生成的目标库

  • QuantizedLayerNames-量化层列表

  • QuantizedLearnables-量化的网络可学习参数

例子

全部折叠

这个例子展示了如何显示神经网络的量化细节。

加载预训练的网络。是一个SqueezeNet卷积神经网络,它已经使用迁移学习进行了重新训练,用于对图像进行分类MerchData数据集。

负载squeezenetmerch
net = DAGNetwork属性:Layers: [68×1 nnet.cnn.layer.Layer] Connections: [75×2 table] InputNames: {'data'} OutputNames: {'new_classoutput'}

使用quantizationDetails函数查看网络是否被量化。

qDetails_original = quantizationDetails(净)
qDetails_original =结构体字段:QuantizedLayerNames: [0×0 string] QuantizedLearnables: [0×3 table]

IsQuantized字段返回0(false),因为原始网络使用单精度浮点数据类型。

解压缩并将MerchData映像作为映像数据存储加载。定义一个augmentedImageDatastore对象来调整网络数据的大小,并将数据分割为校准和验证数据集以用于量化。

解压缩(“MerchData.zip”);imd = imageDatastore (“MerchData”...“IncludeSubfolders”,真的,...“LabelSource”“foldernames”);[calData, valData] = splitEachLabel(imds, 0.7,“随机”);aug_calData = augmentedImageDatastore([227 227], calData);aug_valData = augmentedImageDatastore([227 227], valData);

创建一个dlquantizer对象,并指定要量化的网络。设置执行环境为MATLAB。

quantObj = dlquantizer(网络,“ExecutionEnvironment”MATLAB的);

使用校准函数使用样本输入来测试网络,并收集距离信息。

calResults =校准(quantObj aug_calData);

使用数字转换方法来量化网络对象并返回一个可模拟的量化网络。

qNet =数字转换(quantObj)
qNet =量化DAGNetwork属性:Layers: [68×1 nnet.cnn.layer.Layer] Connections: [75×2 table] InputNames: {'data'} OutputNames: {'new_classoutput'}使用quantizationDetails方法提取量化细节。

使用quantizationDetails方法提取量化细节。

qDetails = quantizationDetails (qNet)
qDetails =结构体字段:QuantizedLayerNames: [26×1 string] QuantizedLearnables: [52×3 table]

检查QuantizedLayerNames字段以查看量化层的列表。

qDetails。QuantizedLayerNames
ans =26日×1的字符串"conv1" "fire2-squeeze1x1" "fire2-expand1x1" "fire3-expand3x3" "fire4-squeeze1x1" "fire4-expand1x1" "fire4-expand3x3" "fire5-squeeze1x1" "fire5-expand1x1" "fire5-expand3x3" "fire5-squeeze1x1" "fire5-expand1x1" "fire5-expand3x3" "fire6-squeeze1x1" "fire6-expand1x1" "fire6-expand3x3" "fire7-squeeze1x1" "fire7-expand1x1" "fire7-expand3x3" "fire8-squeeze1x1" "fire8-expand1x1" "fire8-expand3x3" "fire8-squeeze1x1" "fire8-expand1x1" "fire8-expand3x3" "fire8-squeeze1x1" "fire8-expand1x1" "fire8-expand3x3" "fire8-squeeze1x1" "fire8-expand1x1" "fire8-expand3x3" "fire9-squeeze1x1" "fire9-expand1x1" "fire9-expand3x3" "new_conv"

检查QuantizedLearnables字段查看网络中可学习参数的量化值。

qDetails。QuantizedLearnables
ans =52×3表层参数值  __________________ _________ __________________ " conv1”“权重”{3×3×3×64 int8}“conv1”“偏见“{1×1×64 int32}”fire2-squeeze1x1”“权重”{1×1×64×16 int8}“fire2-squeeze1x1”“偏见“{1×1×16 int32}”fire2-expand1x1”“权重”{1×1×16×64 int8}“fire2-expand1x1”“偏见“{1×1×64 int32}”fire2-expand3x3”“权重”{3×3×16×64 int8}“fire2-expand3x3”“偏见“{1×1×64 int32}”fire3-squeeze1x1”“权重”{1×1×128×16 int8}“fire3-squeeze1x1”“偏见”{1×1×16 int32}"fire3-expand1x1" "Weights" {1×1×16×64 int8} "fire3-expand1x1" "Bias" {1×1×64 int32} "fire3-expand3x3" "Weights" {3×3×16×64 int8} "fire3-expand3x3" "Bias" {1×1×64 int32} "fire4-squeeze1x1" "Weights" {1×1×128×32 int8} "fire4-squeeze1x1" Bias" {1×1×32 int32}

输入参数

全部折叠

量化神经网络指定为DAGNetworkSeriesNetwork,或者一个dlnetwork对象。

版本历史

介绍了R2022a

Baidu
map