------------摘自君正官方《magik_introduce》
君正简介,芯片 + AI 算力 + AI 开发平台」方案落地,公布全栈式低功耗 AI 技术
Magik是一个为端侧AI应用场景打造的集模型训练、优化转换、部署推理于一体的全栈式深度学习开放平台。
支持pytorch/tensorflow/mxnet/caffe/onnx等主流框架。
全栈式,即提供训练工具包,用户可出数据,用其Training Kit训练。
具体:
2.1 模型本质上二进制文件。
2.2 量化方式按量化位置分,训练量化(Quantization Aware Training,QAT)、训练后量化(Post-Training Quantization,PTQ )两种。
QAT:训练中模拟量化行为,在训练中用浮点保存定点参数,最后进行推理时采用定点参数。
优点:精度高、可量化至低位宽 (2、4、8)
缺点:时间成本高,需先训练float->8bit->4bit->2bit
对训练经验和显卡要求高
PTQ:对直接训练出的浮点模型进行模型参数量化。
优点:方便,快捷
缺点:目前为保持无损的转化只能量化到8bit
量化方式选择,训练量化可以得到更小的模型参数、更快推理速度。
板子支持性问题:后量化(T40);训练量化(Txx,Xs1,T40),eg T30就没得选了,哈哈
2.3 训练量化硬件需求,需GPU
2.4 软件需求
注:magik目前只支持GPU上进行训练量化
编译magik包需要提供如下环境(pytorch为例):
Environment:
1. pytorch version
2. python version
3. os system
4. cuda and cudnn version
5. gcc version
安装参考步骤:
anaconda安装命令
(以torch 1.5、python3.6、cuda10.2、cudnn7.6、ubuntu为例)
1. conda creat -n python python=3.6
2. pip install torch==1.5.0 torchvision==0.6.0 -i
http://pypi.douban.com/simple --trusted-host pypi.douban.com
3. pip install magik_trainingkit_torch_150-1.0.2-py3-none-any.why
4. from ingenic_magic_trainingkit.QuantizationTrainingPlugin.python
import ops
2.5 训练量化具体内容以及支持算子
内容概述
卷积、全连接算子目前支持的激活类型:
注:1.激活需在卷积或者全连接层对应接口设置activation_fn,如activation_fn=ops.Linear();
Txx基于magik开源训练模型:
1.基于ssd的人脸检测(facedet),轻量级
2.基于yolo的人形检测(persondet),轻量级yolov3 tiny
T40基于magik开源训练模型:
1. 基于ssd的人脸检测(facedet),中量级
2. 基于yolo的人形检测(yolov3),中量级
3. 基于magik构建的resnet分类网络
4. 基于yolov5s的后量化模型
注:每个对应开源训练代码下都有同步的上板测试的venus_sample(包括前处理、后处理相关代码),如果释放开源代码的话。
1. Txx-基于ssd的人脸检测(facedet),轻量级
2.Txx-基于yolo的人形检测(persondet),轻量级yolov3 tiny
3. T40-基于ssd的人脸检测(facedet),中量级
4. T40-基于yolo的人形检测(yolov3),中量级
5. T40-基于yolov5s的后量化模型
-------------------------------------------------------------------------------------------------------------------
注:没有找到官方SDK以及释放的sample
附:一个总结的不错的帖子关于君正T41、T40、T31版本的选择参考都在这里_qq2224043166的博客-CSDN博客_君正t40