UfaceConvertServer模型量化服務(wù)
目前的嵌入式算法開發(fā)中,針對(duì)不同芯片平臺(tái)進(jìn)行模型量化是模型工程化必不可少的一部分。一般的方式是算法開發(fā)人員自己搭建量化環(huán)境進(jìn)行量化,這種方式需要每個(gè)算法開發(fā)都搭建一套自己的環(huán)境,需要熟悉 不同的量化工具,而且需要手動(dòng)量化。本項(xiàng)目試圖通過(guò)模型量化服務(wù),可免去算法工程師自己搭建各種芯片的量化環(huán)境,而只需要在服務(wù)所在的機(jī)器上配置好相關(guān)的量化工具鏈即可。算法工程師只要按規(guī)則通過(guò)Web將模型上傳至指定位置,服務(wù)將根據(jù)配置自動(dòng)為其量化,并將量化后模型上傳至指定位置。當(dāng)前支持RKNN芯片,可擴(kuò)展至其他平臺(tái)。
配置
- 安裝minio, 可參考官網(wǎng):https://docs.min.io/,或直接通過(guò)以下命令進(jìn)行docker安裝:
sudo docker run -p 9003:9000 --name minio \ -d --restart=always \ -e "MINIO_ACCESS_KEY=admin" \ -e "[email protected]" \ -v /nfs_79/model_zoo:/data \ #模型位置 -v /nfs_79/model_zoo/config:/root/.minio \ #minio配置存儲(chǔ)路徑 minio/minio:RELEASE.2021-04-06T23-11-00Z.hotfix.e46577116 server /data
minio是一個(gè)對(duì)象存儲(chǔ)服務(wù),可以幫助我們管理模型文件,并且提供了Web和S3 API便于操作。 上述命令將在本機(jī)開啟一個(gè)服務(wù),用戶上傳的數(shù)據(jù)在本地的/nfs_79/model_zoo中,訪問(wèn)方式為 http://ip:9003 2. 安裝rknn量化工具包
項(xiàng)目文件說(shuō)明
sync_server.py
定時(shí)將minio上的文件同步至本地目錄
model_repo_monitor.py
監(jiān)控模型目錄,如果發(fā)現(xiàn)有模型需要轉(zhuǎn)換,添加到任務(wù)隊(duì)列
rknn_quant.py
進(jìn)行rknn量化,并上傳日志和轉(zhuǎn)換后的模型到minio
logger.py
日志相關(guān)
config.py
讀取配置信息
repo_uploader.py
上傳文件到minio倉(cāng)庫(kù)
common_utils.py
其他
如何使用
- 首先開啟sync_server.py進(jìn)行minio倉(cāng)庫(kù)和 本地目錄的同步
- 設(shè)置config.py的信息,主要是minio倉(cāng)庫(kù)的賬號(hào)信息
- python main.py --repo-dir local_path 開啟服務(wù)
- 訪問(wèn) http://ip:9003 上傳模型至minio,目錄結(jié)構(gòu)應(yīng)為: ModelName/ModelVersion/rknn, 在此目錄下放置原始模型,convert_config.json(量化配置文件)以及quant_imgs(量化圖片目錄)
評(píng)論
圖片
表情
