深度学习算法优化系列十五 | OpenVINO Int8量化前的数据集转换和精度检查工具文档

前言

接着上文,我们知道了Int8量化的操作过程是:

  • 转换数据集获得Annotations文件。
  • (可选的)评估低精度模型性能。
  • 校验模型。
  • 评估结果模型。

可以看到在用Calibaration Tool进行Int8量化之前需要先解决如何将我们的原始数据集转为Annotations文件以及我们如何用精度检查工具(Accuracy Checker Tool)去评估我们的量化后模型的表现。其中将原始数据集转换为Annotations文件的时候用命令是比较方便,如果懒得写配置文件的话。而要使用精度检查工具,则必须写配置文件了,具体见本文后面的详细介绍。

精度检查器

精度检查实例

在这个例子中,我们来浏览一下要评估一个深度学习模型需要哪些步骤,我们以SampLeNet作为例子。

1. 下载和解压数据集

在这个示例中,我们将使用玩具数据集,我们称之为示例数据集,它包含10个不同类别的总共10k个图像(分类问题),实际上是CIFAR10数据集转换为png(图像转换将在评估过程中自动完成)。你可以从官网下载CIFAR10数据集。然后解压下载下来的CIFAR10数据集到sample文件夹:

tar xvf cifar-10-python.tar.gz -C sample

2. 评估示例拓扑

通常需要编写配置文件,描述拓扑的评估过程。已经有了使用OpenVINO框架评估SampLeNet的配置文件,请仔细阅读。你需要安装Caffe的模型优化器来运行Caffe模型。如果你不想使用Caffe,请直接将Caffe模型转换成:

model: SampleNet.xml
weights: SampleNet.bin
accuracy_check -c sample/sample_config.yml -m data/test_models -s sample

使用参数:-c 评估配置文件的路径,-m 模型被存储的路径,-s 数据集的路径。

如果一切正常,你应该能得到75.02%的准确率。

现在尝试编辑配置文件在其他设备或框架(如Caffe、MxNet或OpenCV)上运行SampLeNet,或者直接转到你的拓扑!

注意,拓扑就是指的网络,因为我们知道网络实际上就是一个有向无环图(DAG)

如何配置Caffe启动程序

要使用Caffe启动器,你需要在你的配置文件下的lunchers段添加caffe字段然后提供下面的参数:

  • device - 指定要用于推断的设备(cpu、gpu_0等)。
  • model- Caffe的prototxt文件的路径。
  • weights -Caffe的weights文件的路径。
  • adapter- 解决将原始输出转换为数据集表示的问题,一些适配器是特定于框架的。后面会详细介绍adapter的详细使用说明。
    你还可以使用batch为模型指定批处理大小,并允许使用特定参数将输入层reshape为数据形状:allow_reshape_input(默认值为False),这个应该是Faster-RCNN的ROI Pooling之类的层会使用。

在配置中指定模型输入

如果你的模型有几个输入,你应该在你配置文件的启动器子段用一个inputs参数提供一个输入列表。每个输入说明应包含以下信息:

  • name - 网络的输入层名字。
  • type - 输入值的类型,它对填充策略有影响。可选:
    • CONST_INPUT - 常量填充,需要提供一个常量值。
    • IMAGE_INFO - 用于将有关输入形状的信息设置到网络层的特定值(用于基于Faster RCNN的拓扑中)。 你不需要提供值,因为它将在运行时计算。 格式值为Nx [H,W,S],其中N是批处理大小,H-原始图像高度,W-原始图像宽度,S-原始图像通道数(默认为1)。
    • INPUT - 网络输入的数据流(例如图像)。 如果你有多个数据输入,则应提供标识符的正则表达式作为值,以指定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值