目录
目录README.md

模型性能批量评估示例

概述

本项目展示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 服务

创建 python3.8 环境

# 下载虚拟环境管理工具 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.8 -y
# 激活 netrans 虚拟环境
mamba activate netrans

板卡单张图片推理示例

# eval_singel.py
import numpy as np
import cv2
from client import *

# 初始化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性能评估

通过 client 接口与板卡建立通信,将yolov5源码中的模型推理替换为板卡的推理,详细的流程请参考链接文本

yolov8s性能评估

通过 client 接口与板卡建立通信,将yolov8源码中的模型推理替换为板卡的推理,详细的流程请参考链接文本

作者 {{liangliangou}}

关于

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

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

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号