专栏算法工具链torch.nn.Parameter如何量化

torch.nn.Parameter如何量化

白菜飘落2023-08-22
15
11
1.芯片型号:J5
2.天工开物开发包OpenExplorer版本:OE 1.1.29
3.问题定位:QAT训练
4.问题具体描述:你好,我当前定义了一个新的层,其中包含了一个nn.Parameter类型的变量

然后这个类的前推如下,请问edge_weights这个nn.Parameter类型的变量要如何量化?

算法工具链
评论1
0/1000
  • 颜值即正义
    Lv.2

    您好~建议可以改写为:quant_edge_weights = self.quant(self.edge_weights)

    2023-08-22
    0
    10
    • 白菜飘落回复颜值即正义:

      这个self.edge_weights是一个可学习的权重。那么self.quant需要如何定义scale?是self.quant=QuantStub(scale=NULL), 还是self.quant=QuantStub(scale=1.0/128.0)

      2023-08-22
      0
    • 颜值即正义回复白菜飘落:

      self.quant=QuantStub() 即可,根据输入动态统计

      2023-08-22
      0
    • 白菜飘落回复颜值即正义:

      你好,我现在的forward调用了torch.sum,在QAT训练时是否要替换?

      2023-08-22
      0
    • 颜值即正义回复白菜飘落:
      2023-08-22
      0
    • 白菜飘落回复颜值即正义:

      你好,现在我在编译hbm时报错了。forward如下

      出错在197行

      报错信息:

      File "/open_explorer/pyproject/bevod_v19/horizon_bev/hat/models/necks/bifpn.py", line 197, in forward

      quant_weights_sum=self.sum.sum(quant_relu_edge_weights,dim=0,keepdim=True)

      File "/usr/local/lib64/python3.6/site-packages/horizon_plugin_pytorch/utils/model_helper.py", line 52, in _call_impl

      result = func(mod, *input, **kwargs)

      File "/usr/local/lib64/python3.6/site-packages/horizon_plugin_pytorch/nn/quantized/functional_modules.py", line 411, in sum

      self.out_dtype,

      File "/usr/local/lib64/python3.6/site-packages/horizon_plugin_pytorch/march.py", line 71, in wrapped_func

      return func(*args, **kwargs, march=get_march())

      File "/usr/local/lib64/python3.6/site-packages/horizon_plugin_pytorch/utils/script_quantized_fn.py", line 194, in wrapper

      return fn(*args, **kwargs)

      File "/usr/local/lib64/python3.6/site-packages/horizon_plugin_pytorch/nn/quantized/functional.py", line 1198, in sum

      march,

      File "/usr/local/lib64/python3.6/site-packages/horizon_plugin_pytorch/nn/quantized/functional_impl.py", line 1578, in _sum

      r, x_scale, x_zero_point, "qint32", scale, zero_point, dtype, march

      File "/usr/local/lib64/python3.6/site-packages/horizon_plugin_pytorch/nn/quantized/functional_impl.py", line 89, in _requantize

      march,

      IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)

      2023-08-23
      0
    • 颜值即正义回复白菜飘落:

      请问您是对self.quant 配置了 per channel 量化吗?

      2023-08-23
      0
    • 白菜飘落回复颜值即正义:

      我只做了这些设置。

      2023-08-23
      0
    • 颜值即正义回复白菜飘落:

      请问没有对self.quant和self.edge_weight做额外配置吗?

      2023-08-23
      0
    • 颜值即正义回复白菜飘落:

      这个配置是对整个模型设置int16吗?

      2023-08-23
      0
    • 白菜飘落回复颜值即正义:

      在初始化中做了如下设置:

      2023-08-23
      0