游乐游手机版
首页/AI热点日报/热点详情

TPU-MLIR模型转换完整指南

类型:热点整理2026-07-18
TPU-MLIR提供精度验证接口,需自行准备数据集(分类用ImageNet5万张图片,检测用COCO5千张图片)。通过model_eval接口设置模型、数据集、图片数量、类型及后处理参数进行验证,分类评估Top1 Top5准确率,检测采用COCO的12个指标(含mAP、不同IoU阈值及尺寸的AP AR)。

在模型转换过程中,仅仅关注各层输出的相似度远远不够,尤其是在进行INT8量化之后,输出差异往往变得更加明显——尽管仍在可接受范围内。单纯依赖数值对比,很难直观判断量化后的模型真实性能如何。因此,TPU-MLIR专门提供了精度验证接口,帮助我们实际检验转换后的模型效果。

要运行精度验证,首先需要准备数据集。TPU-MLIR并未自带完整的测试集,需要用户自行下载。分类网络通常使用ImageNet2012验证集,共包含5万张图片;目标检测网络则使用COCO2017验证集,包含5千张图片。未来还将逐步支持NLP等其他类型的网络,但那将是后续版本的功能。

数据集的摆放方式也有特定要求。分类数据集的5万张图片分别存放在1000个子目录中,对应ImageNet的1000个类别,每个类别下各有50张图片。这种目录结构天然带有标签信息,无需额外的标签文件。而COCO数据集则更为简单:所有图片存放在同一个目录下,类别信息从对应的json文件中提取。

数据集准备完成后,直接使用model_eval接口验证mlir模型的精度。主要涉及五个参数:model_filedataset分别指定模型和数据集路径;count用于指定参与验证的图片数量,默认将跑完整个数据集;dataset_type根据模型类型决定数据集的加载方式;postprocess_type则指定输出的后处理方式,随后利用对应的metrics计算精度指标。

可能有人会问:预处理信息在哪里?其实mlir模型的input_op中已经包含了这些信息,主要包括mean、scale、resize的尺寸、是否保持宽高比、输入图片的pixel_format等。其中mean和scale用于对输入的像素值进行线性变换,与常用的mean、std类似,只不过将normalize的部分直接融入了这两个参数中。

至于评估方式,分类网络主要关注Top1和Top5 accuracy——即模型输出的最高概率类别或前五类别中是否包含正确标签。目标检测网络则使用COCO官方的12个评估指标,从不同维度验证精度。具体来说,模型输出的检测框先经过非极大值抑制(NMS),剔除重叠和概率较低的候选框,剩下的再与ground truth bounding box计算IoU,然后根据不同指标的计算规则,得出相应的average precision(AP)和average recall(AR)。

举个例子,第一个指标是从IoU=0.5到0.95,每隔0.05计算一次模型对单个类别的precision,取平均后,再将所有类别的precision累加并取平均——这就是mAP的其中一种计算方式。另外两个指标则只使用单个IoU阈值来计算AP。COCO数据集还会按物体所占像素数量区分为大、中、小三种尺寸,TPU-MLIR也会分别对这些不同尺寸的物体计算AP和AR,验证模型在检测不同大小目标时的精度表现。

至于AR max=1、10、100,意思是分别限制每张图片只保留1个、10个或100个概率最高的检测结果,然后与第一种AP的计算方式类似:按IoU阈值从0.5到0.95、每隔0.05计算一次单个类别的AR,先取不同IoU下的平均值,再取不同类别下的平均值。

TPU-MLIR在GitHub上发布了一系列待解决的问题,对AI编译器感兴趣、想利用业余时间参与开源项目的朋友,可以一起加入,共同完善这个新一代的AI编译器。

来源:https://m.elecfans.com/article/2217088.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。