量化、投影和剪枝
通过执行量化、投影或修剪来压缩深度神经网络
使用深度学习工具箱™与深度学习工具箱模型量化库支持包通过以下方式减少深度神经网络的内存占用和计算需求:
使用一阶泰勒近似从卷积层修剪滤波器。然后可以生成C/ c++或CUDA®来自这个修剪过的网络的代码。
通过使用代表训练数据的数据集对层激活执行主成分分析(PCA)来投影层,并对层可学习参数应用线性投影。当您使用无库的C/ c++代码生成将网络部署到嵌入式硬件时,投影深度神经网络的向前传递通常会更快。
量化层的权重、偏差和激活,以减少精确缩放的整数数据类型。然后,您可以从这个量化网络生成C/ c++、CUDA或HDL代码。
对于C/ c++和CUDA代码生成,该软件通过将卷积层的权重、偏差和激活量化为8位缩放整数数据类型,为卷积深度神经网络生成代码。量化是通过提供校准结果文件产生的
校准
函数codegen
(MATLAB编码器)命令。代码生成不支持量化深度神经网络生成
数字转换
函数。
功能
应用程序
深度网络量化器 | 将深度神经网络量化为8位比例整数数据类型 |
主题
修剪
- 图像分类网络的参数剪枝与量化
使用参数剪枝和量化来减小网络规模。 - 利用泰勒分数修剪图像分类网络
这个例子展示了如何使用泰勒剪枝减少深度神经网络的大小。 - 使用泰勒分数的检测网络中的剪枝滤波器
这个例子展示了如何通过在you only look once (YOLO) v3对象检测网络中修剪卷积滤波器来减小网络规模并提高推理速度。
投影
- 利用投影压缩神经网络
这个例子展示了如何使用投影和主成分分析来压缩神经网络。
GPU目标量化
- 为深度学习网络生成INT8代码(GPU编码器)
量化并生成预训练卷积神经网络的代码。 - 图像分类残差网络量化训练并生成CUDA代码
这个例子展示了如何量化具有剩余连接的深度学习神经网络的卷积层中的可学习参数,并已使用CIFAR-10数据进行图像分类训练。 - 量化层在对象检测器和生成CUDA代码
这个例子展示了如何为SSD车辆检测器和YOLO v2车辆检测器生成CUDA®代码,该检测器为卷积层执行8位整数的推理计算。 - 量化语义分割网络并生成CUDA代码
量化卷积神经网络进行语义分割并生成CUDA代码
FPGA目标的量化
- FPGA部署的量化网络(深度学习HDL工具箱)
通过将卷积层的权重、偏差和激活量化为8位缩放整数数据类型,减少深度神经网络的内存占用。 - 基于FPGA的量化神经网络图像分类(深度学习HDL工具箱)
这个例子展示了如何使用深度学习HDL工具箱™将量化的深度卷积神经网络(CNN)部署到FPGA。 - 利用量化GoogLeNet网络在FPGA上对图像进行分类(深度学习HDL工具箱)
这个例子展示了如何使用深度学习HDL工具箱™来部署一个量化的GoogleNet网络来对图像进行分类。
CPU目标量化
- 为深度学习网络生成int8代码(MATLAB编码器)
量化并生成预训练卷积神经网络的代码。 - 在树莓派上生成深度学习网络INT8代码(MATLAB编码器)
为深度学习网络生成代码,在8位整数中执行推理计算。