专栏算法工具链把模型转换为QAT状态时报错

把模型转换为QAT状态时报错

已解决
UtGA6SPbn2024-10-21
85
3

1. 芯片型号:X3

2. 天工开物开发包 OpenExplorer 版本:horizon_xj3_open_explorer_v2.6.6
3. 问题定位:改造浮点模型并完成训练后,尝试进行Calibration时报错

报错信息如下,X3不支持包含leakyrelu的模型进行prepare_qat_fx吗?


Traceback (most recent call last):

 File "float_calib.py", line 59, in

  calib_model = prepare_qat_fx(

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/utils/typeguard.py", line 1076, in wrapper

  retval = func(*args, **kwargs)

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/quantize_fx.py", line 626, in prepare_qat_fx

  model = _prepare_fx(

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/quantize_fx.py", line 327, in _prepare_fx

  prepared = quantizer.prepare(

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/fx/quantize.py", line 517, in prepare

  return self._prepare(

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/fx/quantize.py", line 490, in _prepare

  self._qat_swap_modules(model, hybrid, opset_version)

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/fx/quantize.py", line 83, in _qat_swap_modules

  convert(

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/utils/typeguard.py", line 1076, in wrapper

  retval = func(*args, **kwargs)

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/quantize.py", line 766, in convert

  _convert(

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/quantize.py", line 952, in _convert

  _convert(

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/quantize.py", line 952, in _convert

  _convert(

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/quantize.py", line 952, in _convert

  _convert(

 [Previous line repeated 1 more time]

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/quantize.py", line 962, in _convert

  reassign[name] = swap_module(mod, mapping, swapped_modules)

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/quantization/quantize.py", line 878, in swap_module

  new_mod = mapping[type(mod)].from_float(mod)

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/nn/qat/leakyrelu.py", line 53, in from_float

  qat_mod = cls(

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/nn/qat/leakyrelu.py", line 27, in __init__

  self.lut = SegmentLUT(

 File "/usr/local/lib/python3.8/dist-packages/horizon_plugin_pytorch/nn/qat/segment_lut.py", line 34, in __init__

  assert self.activated(), "SegmentLUT only support march in {}!".format(

AssertionError: SegmentLUT only support march in ('bayes', 'bayes-e', 'meta', 'nash', 'nash-e', 'nash-m', 'nash-p')!

算法工具链
征程3
评论2
0/1000
  • J6标定问题
    Lv.1

    是不支持,参考4.2.7.2.4. torch.nn Module 类,


    2024-10-22
    1
    1
    • UtGA6SPbn回复J6标定问题:

      感谢回复

      2024-10-22
      0
  • J6标定问题
    Lv.1

    收到,我们先分析一下

    2024-10-21
    0
    0