探索的行为与量化卷积神经网络层,使用深层网络量化器应用。本例中对可学的卷积层的参数squeezenet
神经网络后再培训网络分类根据新图像火车深入学习网络对新图像进行分类的例子。
这个示例使用DAG网络与GPU执行环境。
网络数字转换加载到基本工作空间。
网= DAGNetwork属性:层:[68×1 nnet.cnn.layer.Layer]连接:[75×2表]InputNames:{“数据”}OutputNames: {“new_classoutput”}
定义校准和验证数据。
运动网络应用程序使用校准数据和收集的动态范围重量和偏见的卷积和完全连接层的网络和动态范围激活所有层的网络。最好的量化结果,校准数据必须输入到网络的代表。
应用程序使用量化后的验证数据来测试网络了解的有限的范围和精度的影响量化可学的卷积层网络的参数。
在这个示例中,使用的图像MerchData
定义一个数据集augmentedImageDatastore
调整对象的数据网络。然后,将数据分为校准和验证数据集。
在MATLAB命令提示符下,打开应用程序。
在这个应用程序中,单击新并选择数字转换网络
。
应用程序验证你的执行环境。有关更多信息,请参见量化工作流先决条件。
在对话框中,选择执行环境和网络数字转换的基础工作。对于这个示例,选择一个GPU执行环境和DAG网络,净
。
应用程序显示选定的网络层图。
在校准将来发布的部分校准数据,选择augmentedImageDatastore
对象从工作区包含校准数据,calData
。
点击校准。
的深层网络量化器运动网络使用校准数据和信息收集范围可学的参数在网络层。
校准完成后,应用程序显示一个表包含重量和偏见的卷积和完全连接层网络和动态范围的各层网络的激活,在校准他们的最小和最大值。右边的表,应用程序显示的动态范围参数的直方图。灰色区域的直方图显示的数据不能代表的量化表示。如何解释这些直方图的更多信息,参见量子化的神经网络。
在数字转换列的表,指示是否可学的参数进行量化在层。层不卷积层不能量化的,因此不能被选中。层没有量化的量化后留在单精度。
在验证将来发布的部分验证数据,选择augmentedImageDatastore
从基本工作空间包含验证数据对象,aug_valData
。
在验证将来发布的部分量化的选择,选择默认的度量函数。
点击数字转换和验证。
的深层网络量化器量化权重、激活和偏见的卷积层网络扩展8位整数数据类型和使用验证数据网络运动。应用程序决定了一个默认度量函数用于验证基于网络的类型是量子化的。一个分类网络,应用程序使用(精度。
验证完成后,应用程序显示的结果验证,包括:
度量函数用于验证
度量函数量化前后的结果
内存需求量化(MB)之前和之后的网络
如果你想使用一个不同的度量函数进行验证,例如使用前5精度度量函数而不是默认的(精度度量函数,您可以定义一个自定义的度量函数。这个函数保存在一个本地文件。
函数精度= hComputeModelAccuracy (predictionScores,净,数据存储)% %计算模型级精度的统计数据%负载地面实况tmp = readall(数据存储);groundTruth = tmp.response;%与预测标签与实际地面真理predictionError = {};为idx = 1:元素个数(groundTruth)[~,类似]= max (predictionScores (idx:));yActual = net.Layers(结束). class(补贴);predictionError{结束+ 1}= (yActual = = groundTruth (idx));% #好吧结束%和所有预测错误。predictionError = [predictionError {}):;精度= (predictionError) /元素个数之和(predictionError);结束
使用这个自定义度量函数,重新验证网络量化的选择,输入自定义度量函数的名称,hComputeModelAccuracy
。选择添加添加hComputeModelAccuracy
可用的指标函数列表的应用程序,选择hComputeModelAccuracy
作为度量函数来使用。
自定义指标函数必须的道路上。如果度量函数没有路径,这一步将产生一个错误。
点击数字转换和验证。
应用程序对网络和显示自定义度量函数的验证结果。
应用程序验证结果表中只显示标量值。查看验证结果与非标量输出自定义度量函数,导出dlquantizer
对象如下所述,然后验证使用验证
函数在MATLAB命令窗口。
量化和验证网络之后,您可以选择导出量化网络。
单击出口按钮。下拉选择出口数字转换器
创建一个dlquantizer
对象的基本工作空间。打开GPU编码器应用程序并生成GPU从量化神经网络代码,选择生成代码
。生成GPU代码需要一个GPU编码器许可证。
如果量化网络的性能不满意,你可以选择不量化表中的一些层通过取消勾选层。看到效果,点击数字转换和验证一次。