目录

模型性能批量评估示例

概述

本项目展示 YOLOv5s 和 YOLOv8s 通过 Netrans 量化后的性能评估实现方案:

  • 在 YOLO 代码框架内实现批量推理和评估性能
  • 通过 client 接口与板卡建立通信,将 YOLO 源码中的模型推理替换为板卡推理
  • 快速测试量化后的精度损失,确保结果可重复性

项目结构

├── src/                                # 测试验证代码
│   ├── val_pnna.py                     # yolov5s 相关板卡的推理代码
│   ├── validator.py                    # yolov8s 相关板卡的推理代码
│   └── client.py                       # jsonrpc_server 相关代码
├── docs/
│   ├── yolov5s_evaluation.md           # yolov5s 性能批量评估示例
│   └── yolov8s_evaluation.md           # yolov8s 性能批量评估示例
├── resource/                           # 资源文件
│   ├── yolov5s/                        # yolov5s 权重文件和量化后文件
│   └── yolov8s/                        # yolov8s 权重文件和量化后文件
└── README.md                           # 项目说明文档

环境要求及配置

硬件要求

项目 要求
NPU 板卡 FT78E_DSKC_202311V0 板卡
连接方式 网线连接(自备)
服务状态 板卡已开启 jsonrpc_server 服务

Python 环境搭建

# 下载虚拟环境管理工具 mamba 的安装脚本
wget "https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/LatestRelease//Miniforge3-$(uname)-$(uname -m).sh"

# 创建 mamba 的安装目录
mkdir -p ~/app

# 安装 mamba 到 ~/app/
bash Miniforge3-Linux-x86_64.sh -b -p ${HOME}/app/miniforge3

# 添加 mamba 的初始化脚本到环境配置文件
echo "source ${HOME}/app/miniforge3/etc/profile.d/mamba.sh" >> ${HOME}/.bashrc

# 重新加载 ~/.bashrc 文件,使 mamba 初始化生效
source ${HOME}/.bashrc

# 创建一个名为 netrans 的虚拟环境,并安装 Python 3.8
mamba create -n netrans python=3.10 -y

# 激活 netrans 虚拟环境
mamba activate netrans

板卡单张图片推理示例

# eval_single.py
import torch
import numpy as np
import cv2
from client import Client

# 初始化 PNNA
method_model = "detection"
pnna_device = Client("ws://192.168.23.100:8000/websocket")

# 新增模型
ret_add = pnna_device.add_model(
    './resource/yolov5s/wksp/dynamic_fixed_point-16/network_binary.nb',
    method_model
)

# 数据加载
img = cv2.imread('./resource/yolov5s/0.jpg')
img_data = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# PNNA 推理,返回推理结果和推理时间
infer_data, infer_time = pnna_device.infer(method_model, img_data)

# 结果转化为 tensor
preds = torch.frombuffer(infer_data[0], dtype=torch.float32).reshape(1, 25200, 85)

评估示例

模型 说明 详细文档
YOLOv5s 替换 yolov5 源码中的模型推理为板卡推理 yolov5s_evaluation.md
YOLOv8s 替换 yolov8 源码中的模型推理为板卡推理 yolov8s_evaluation.md

作者:liangliangou

关于

本项目展示yolov5s和yolov8s的通过netrans量化后的性能评估实现方案

254.4 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号