UfaceConvertServer模型量化服务

联合创作 · 2023-09-28 09:48

目前的嵌入式算法开发中,针对不同芯片平台进行模型量化是模型工程化必不可少的一部分。一般的方式是算法开发人员自己搭建量化环境进行量化,这种方式需要每个算法开发都搭建一套自己的环境,需要熟悉 不同的量化工具,而且需要手动量化。本项目试图通过模型量化服务,可免去算法工程师自己搭建各种芯片的量化环境,而只需要在服务所在的机器上配置好相关的量化工具链即可。算法工程师只要按规则通过Web将模型上传至指定位置,服务将根据配置自动为其量化,并将量化后模型上传至指定位置。当前支持RKNN芯片,可扩展至其他平台。


配置



  1. 安装minio, 可参考官网:https://docs.min.io/,或直接通过以下命令进行docker安装:




sudo docker run -p 9003:9000 --name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=123@abc.com" \
-v /nfs_79/model_zoo:/data \ #模型位置
-v /nfs_79/model_zoo/config:/root/.minio \ #minio配置存储路径
minio/minio:RELEASE.2021-04-06T23-11-00Z.hotfix.e46577116 server /data



minio是一个对象存储服务,可以帮助我们管理模型文件,并且提供了Web和S3 API便于操作。 上述命令将在本机开启一个服务,用户上传的数据在本地的/nfs_79/model_zoo中,访问方式为 http://ip:9003 2. 安装rknn量化工具包


项目文件说明


sync_server.py


定时将minio上的文件同步至本地目录


model_repo_monitor.py


监控模型目录,如果发现有模型需要转换,添加到任务队列


rknn_quant.py


进行rknn量化,并上传日志和转换后的模型到minio


logger.py


日志相关


config.py


读取配置信息


repo_uploader.py


上传文件到minio仓库


common_utils.py


其他


如何使用



  1. 首先开启sync_server.py进行minio仓库和 本地目录的同步

  2. 设置config.py的信息,主要是minio仓库的账号信息

  3. python main.py --repo-dir local_path 开启服务

  4. 访问 http://ip:9003 上传模型至minio,目录结构应为: ModelName/ModelVersion/rknn, 在此目录下放置原始模型,convert_config.json(量化配置文件)以及quant_imgs(量化图片目录)

浏览 27
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报