当前位置: 首页 > news >正文

崇明区建设镇政府网站/没有限制的国外搜索引擎

崇明区建设镇政府网站,没有限制的国外搜索引擎,广州十大软件公司排名,金坛网站建设哪家好RK3588-NPU pytorch-image-models 模型编译测试 一.背景二.操作步骤1.下载依赖2.创建容器3.安装依赖4.创建脚本A.生成模型名列表B.生成ONNX模型C.生成RKNN模型D.批量测试脚本 一.背景 测试RK3588-NPU对https://github.com/huggingface/pytorch-image-models.git中模型的支持程…

RK3588-NPU pytorch-image-models 模型编译测试

  • 一.背景
  • 二.操作步骤
    • 1.下载依赖
    • 2.创建容器
    • 3.安装依赖
    • 4.创建脚本
      • A.生成模型名列表
      • B.生成ONNX模型
      • C.生成RKNN模型
      • D.批量测试脚本

一.背景

  • 测试RK3588-NPU对https://github.com/huggingface/pytorch-image-models.git中模型的支持程度

二.操作步骤

1.下载依赖

mkdir rk3588
cd rk3588
wget -O v2.3.0.tar.gz https://github.com/airockchip/rknn-toolkit2/archive/refs/tags/v2.3.0.tar.gz
tar -xf v2.3.0.tar.gz
git clone https://github.com/huggingface/pytorch-image-models.git

2.创建容器

docker stop rk3588_npu_test
docker rm rk3588_npu_test
docker run --gpus all --shm-size=128g -id -e NVIDIA_VISIBLE_DEVICES=all \--privileged --net=host -v $PWD:/home -w /home \--name=rk3588_npu_test nvcr.io/nvidia/pytorch:23.07-py3 /bin/bash	
docker start rk3588_npu_test
docker exec -ti rk3588_npu_test bash

3.安装依赖

cd /home
pip install -r rknn-toolkit2-2.3.0/rknn-toolkit2/packages/x86_64/requirements_cp310-2.3.0.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install rknn-toolkit2-2.3.0/rknn-toolkit2/packages/x86_64/rknn_toolkit2-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
cd /home/pytorch-image-models
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip uninstall opencv-contrib-python opencv-python -y
pip install opencv-python==4.7.0.72 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install opencv-contrib-python==4.7.0.72 -i https://pypi.tuna.tsinghua.edu.cn/simple/

4.创建脚本

A.生成模型名列表

cat > list_models.py <<-'EOF'
from timm.models import create_model, is_model, list_models
model_names = list_models()
with open("models.txt","w") as f:for n in model_names:f.write(f"{n}\n")
EOF
python list_models.py

B.生成ONNX模型

cat> gen_onnx.py<<-'EOF' 
import timm
import sys
import torch
import os
from timm.utils.model import reparameterize_model
from timm.utils.onnx import onnx_exportONNX_MODEL = 'model.onnx'
if os.path.exists(ONNX_MODEL):os.remove(ONNX_MODEL)
model = timm.create_model(sys.argv[1],num_classes=2,in_chans=3,pretrained=False,exportable=True,
)
model.eval()
input_size=model.default_cfg.get('input_size')
input_tensor = torch.ones((1,) + input_size)
input_names = ["input"]
output_names = ["output"]
torch.onnx.export(model, input_tensor, ONNX_MODEL, verbose=False, input_names=input_names,output_names=output_names,opset_version=17,export_params=True)
EOF

C.生成RKNN模型

cat> gen_rknn.py<<-'EOF' 
import os
import urllib
import traceback
import time
import sys
import numpy as np
import cv2
from rknn.api import RKNNONNX_MODEL = 'model.onnx'
RKNN_MODEL = 'model.rknn'if not os.path.exists(ONNX_MODEL):exit(-1)if os.path.exists(RKNN_MODEL):os.remove(RKNN_MODEL)
if not os.path.exists("./dataset.txt"):img=np.ones((224,224,3),dtype=np.int8)cv2.imwrite("img.jpg",img)with open("./dataset.txt","w") as f:f.write("img.jpg")rknn = RKNN(verbose=False)
rknn.config(mean_values=[123.675, 116.28, 103.53], std_values=[58.82, 58.82, 58.82], target_platform='rk3588')
ret = rknn.load_onnx(model=ONNX_MODEL)
if ret != 0:exit(ret)
ret = rknn.build(do_quantization=True, dataset='./dataset.txt')
if ret != 0:exit(ret)
ret = rknn.export_rknn(RKNN_MODEL)
if ret != 0:exit(ret)
rknn.release()
if os.path.exists(RKNN_MODEL):print("BUILD SUCCESS")
EOF

D.批量测试脚本

cat> run.sh<<-'EOF' 
#!/bin/bashmkdir -p ./log
# 获取 models.txt 中的模型总数
total=$(wc -l < models.txt)
count=0
for name in $(cat models.txt); doif [ ! -f ./log/$name ]; then# 打印进度条progress=$((count * 100 / total))echo -ne "进度: ["for ((i = 0; i < progress; i+=2)); do echo -n '='; donefor ((i = progress; i < 100; i+=2)); do echo -n ' '; doneecho -ne "] $progress%\r"	echo $name        # 获取开始时间model_start_time=$(date +%s)        # 运行python脚本python gen_onnx.py $name > ./log/$name 2>&1python gen_rknn.py >> ./log/$name 2>&1        # 记录结束时间并计算耗时model_end_time=$(date +%s)model_duration=$((model_end_time - model_start_time))        output=$(grep "BUILD SUCCESS" ./log/$name)echo "$name $output (耗时: ${model_duration}s)"        # 增加已完成的模型计数count=$((count + 1))fi
done
# 打印新行以结束进度条
echo ""
EOF
bash run.sh
http://www.jmfq.cn/news/5346145.html

相关文章:

  • 新疆省建设厅官方网站/免费培训seo
  • 大连科技学院官方网站的建设与放/互联网营销培训课程
  • 4徐汇区网站建设/十大免费b2b网站
  • 辽宁建设考试培训网站/视频号视频怎么看下载链接
  • 哈尔滨网站建设哪家好而且价格不贵/医院线上预约
  • 佛山企业网站建设教程/博客网站登录入口
  • 网站建设详细的步骤有哪些/友情链接互换
  • 江苏昆山网站建设/百度渠道开户
  • 深圳建设工程质量安全智能监管平台网站/app拉新怎么做
  • 学校网站群建设设计/saas建站平台
  • 农商网站建设个人总结/站长之家seo工具包
  • 甘肃建设厅网站官网/国内十大搜索引擎
  • 建设工程项目在哪个网站查询/黄石seo诊断
  • 咸阳网站建设专业公司/qq空间秒赞秒评网站推广
  • 山东省建设厅网站多少/青岛seo推广专员
  • 京东网站建设的策划书/谷歌搜索引擎363入口
  • 珠海做网站建设/淘宝推广费用一般多少
  • 网站建设126/怎样制作一个网站
  • 网站正在建设中备案/今日重大事件
  • 龙山网站建设/seo优化自动点击软件
  • 佛山市住房和城乡建设委员会网站/兰州网络推广技术
  • 网站打开为建设中/企业宣传推广
  • 网站建设实训作业/上海短视频培训机构
  • 学校网站的建设目标是什么/google谷歌
  • 网站建设嘉兴/郑州全域静态管理
  • 马拉松网站建设/站长工具关键词排名怎么查
  • 网站建设领导讲话稿/百度seo排名软
  • 北京远程时代网站建设/百度站长中心
  • 品牌网站建设哪里有/软文广告经典案例300
  • 自己建设网站赚钱/电商软文广告经典案例