FPGA萌新上路
从部署角度说几个实际遇到的坑。
第一,模型转换时的输入尺寸。YOLO有时候会有动态尺寸或者后处理,Vitis AI不一定支持。一定要在量化前把模型固定成推理时的输入尺寸,比如416x416。后处理尽量放到CPU上做,DPU只跑主体网络。
第二,编译出来的.xmodel文件在板子上加载失败。常见原因是交叉编译环境不对,或者依赖库版本不匹配。确保PC上编译用的Vitis AI版本和板子上的Runtime版本一致。官方Docker镜像最省心。
第三,内存泄漏。连续跑多次推理后,内存可能一直涨。这通常是调用Runtime API时,输入输出tensor没有正确释放。仔细看示例代码里的分配和释放流程,确保成对调用。
调试时,多打日志。把DPU输入输出的数据抓出来,和CPU浮点模型的结果对比,可以定位到是哪一层误差大。量化误差通常是均匀的,如果某一层输出突变,那层可能就是敏感点,需要特殊处理。
选择建议:如果精度要求极高,可以考虑用INT16量化,虽然速度慢点但精度损失小。资源够的话,用更大的DPU配置并行度高,性能更好。
