我观察到你们的工具链当中有两套模型转换工具,hbdk-cc可以将mxnet和tf模型转换成hbm模型,hb_mapper可以将caffe和onnx模型转换成bin文件。请问这两套转换出来的模型有什么区别,根据我的观察和实验,似乎实际使用调用的接口都是相同的,那么为什么要区分两套转换工具?另外,hb_mapper使用的文档和示例相对来说比较完整,hbdk-cc工具的使用方法只在ai_express文档中简单提了一下,是否有更详细的文档和示例,如何配置量化,预处理,输入格式等参数?
谢谢
我观察到你们的工具链当中有两套模型转换工具,hbdk-cc可以将mxnet和tf模型转换成hbm模型,hb_mapper可以将caffe和onnx模型转换成bin文件。请问这两套转换出来的模型有什么区别,根据我的观察和实验,似乎实际使用调用的接口都是相同的,那么为什么要区分两套转换工具?另外,hb_mapper使用的文档和示例相对来说比较完整,hbdk-cc工具的使用方法只在ai_express文档中简单提了一下,是否有更详细的文档和示例,如何配置量化,预处理,输入格式等参数?
谢谢
您好, hb_mapper是我们浮点转定点工具的标准交付物,这个工具封装了HBDK-CC,建议咱们只使用hb_mapper。
如果想转换TF格式的模型,还请先使用开源社区的工具,先将TF模型转换为ONNX的模型。
推荐使用GitHub - onnx/tensorflow-onnx: Convert TensorFlow, Keras, Tensorflow.js and Tflite models to ONNX
训练还是使用正常的框架训练,然后通过浮点转换工具转换成板子上能使用的模型。
HBDK-CC是我们量化训练框架(非浮点转换工具)中的,那套工具相对复杂,目前仅对有需要的商业客户开放使用方法。敬请谅解! 如果您发现有模型只通过hb_mapper不能解决,还请提bug给我们,由衷感谢!!
1. 量化训练是指,通过量化训练和hbdk-cc 转换出出上板模型 hbm-
2. 浮点转定点工具 是指 浮点模型 直接转成 上板模型bin-
3. 部署api 不要需要区分两个模型
4. 说明可以参照 工具链 sample的调用方式
1. 没有理解你的意思。hbdk-cc不是一个模型转换工具?还支持量化训练?
2. hb_mapper可以做模型转换和量化,这个可以理解。
3. 那么为何要区分这两个工具,这两个工具究竟有什么区别?尤其是hbdk-cc的说明确实没有找到。如果两者只是支持的框架不同,完全可以做成一套对用户的接口,这样用户使用会更方便。
4. hb_mapper转换的说明和sample,工具链文档中的确可以找到。hbdk-cc的说明没有找到,只在AI_Express用户手册/XStream模型与策略开发/模型集成中简单提到。没有看到你说的关于量化训练的内容,相关的参数也不太明确是什么含义,是否有更详细清晰的文档?
了解了,谢谢。希望以后还能直接支持更多框架,毕竟多转一次就多一次不兼容或者参数转换出错的风险。
使用浮点转定点工具,不会涉及到hbdk-cc。AI_Express开发会直接调用 bup_predicr 接口,放入浮点转换工具生成的模型即可。-
关于量化训练是什么,可以在社区上搜索量化训练
量化训练,是使用地平线提供的 TF 或 MXNET 插件,重新训练可以跑在芯片上的算法;
一般来讲,模型转换比较方便,入手简单,能满足大部分需求; 量化训练更复杂一些,更适合对算法精度有极致需求的情况。
所以hbdk-cc不建议用户使用?如果我要转tf的模型,不就要使用hbdk-cc吗?因为hb_mapper转化只支持onnx和caffe模型。
我并不是要问什么是量化训练,而是怎么使用你们的框架做量化训练。我搜了你们的帖子,当中主要是介绍了量化训练的概念,简单提到可以用你们的框架做量化训练,但是怎么用你们的框架做量化训练,得到的是什么模型要做什么转换处理才能调用bpu_predict api使用,都没有具体的介绍,也没有实际的例子,当中提到“ 更多内容请查阅文档 5.3. 算法模型的限制 及 6.训练工具和教程 ”,请问这是什么文档,在最新的toolchain文档当中并没有这个章节。
是的,其实我主要不是要询问量化训练的相关内容。因为做定点化基本上精度是能满足需求的。但是要转tf的模型,还是要使用hbdk-cc,而hbdk-cc的相关文档我不知道在什么地方可以找到。