插入定点算子centered_yuv2rgb

你好,

针对rgb输入的训练模型,进行qat后,对模型转为定点模型,需要执行nv12->yuv444->(centered_yuv2rgb)->rgb的

过程。对此在论坛上找到了以下内容:

=======================================================================================

该算子为纯定点算子,不参与模型训练的过程。该算子使用方式如下:

  1. 通过QAT训练得到满意的精度之后,先使用convert()接口将qat模型转为quantized模型;
  2. 修改forward,在QuantStub后插入该算子;
  3. 设置QuantStub的scale=1(因为QuantStub已经被合入到了centered_yuv2rgb中,此处只有标识符的作用);
  4. 推理一次quantized模型。

=======================================================================================

针对该内容有一些疑问,

在转为定点模型后修改forward和quantstub该如何进行,并成功将原有的已经读入内存的定点模型修改?

此处推理一次定点模型是进行一次quantize_model(input)还是执行一次torch.jit.trace操作

能否给个相应例子,或者详细说明一下上面的具体步骤,谢谢

祝好

你好,请问1.1.40版本能实现这个算子插入吗?现在板子上的版本依然是1.1.40版本,你给我的文档https://developer.horizon.ai/api/v1/fileData/horizon\_j5\_open\_explorer\_cn\_doc/plugin/source/advanced\_content/rgb888\_deploy.html貌似是新版本的。

您好,地平线工具链在持续迭代优化,为了给您提供更好的服务,希望您能抽出3分钟左右的时间,将您在使用工具链期间的感受和建议告诉我们,您的宝贵意见对我们很重要,非常感谢!-
问卷链接:地平线算法工具链使用满意度反馈

您好,1. 在转为定点模型后,通过修改模型输入端的量化节点的scale为1,然后在centered_yuv2rgb算子中设置量化参数,把量化操作融入到centered_yuv2rgb算子中来做,示意图如下:-

相关操作流程和示例可以参考J5工具链用户手册:https://developer.horizon.ai/api/v1/fileData/horizon\_j5\_open\_explorer\_cn\_doc/plugin/source/advanced\_content/rgb888\_deploy.html

2. 插入centered_yuv2rgb算子后需要推理一次quantized模型

谢谢,了解了

这里补充说明一下,手册中的示例使用的quantized_model.recompile(),到 recompile 这步就是已经成功插入了,后续是要做 quangtized infer 还是直接编译成上板的 hbm 模型都是可以的。