modelscope / FunASR

A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing etc.
https://www.funasr.com
Other
6.49k stars 688 forks source link

funasr1.0.5版本onnx导出失败 #1462

Closed acetotot closed 7 months ago

acetotot commented 7 months ago

运行: from funasr import AutoModel model = AutoModel(model="paraformer") res = model.export(quantize=False) 报错: ckpt: /data/project_lzl/.cache/modelscope/hub/iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/model.pt Traceback (most recent call last): File "/data/project_lzl/asr/1.py", line 37, in res = model.export(quantize=False) File "/data/project_lzl/asr/funasr/auto/auto_model.py", line 493, in export export_dir = export_utils.export_onnx( File "/data/project_lzl/asr/funasr/utils/export_utils.py", line 19, in export_onnx _onnx(m, File "/data/project_lzl/asr/funasr/utils/export_utils.py", line 45, in _onnx torch.onnx.export( File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/onnx/init.py", line 305, in export return utils.export(model, args, f, export_params, verbose, training, File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/onnx/utils.py", line 118, in export _export(model, args, f, export_params, verbose, training, input_names, output_names, File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/onnx/utils.py", line 719, in _export _model_to_graph(model, args, verbose, input_names, File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/onnx/utils.py", line 499, in _model_to_graph graph, params, torch_out, module = _create_jit_graph(model, args) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/onnx/utils.py", line 440, in _create_jit_graph graph, torch_out = _trace_and_get_graph_from_model(model, args) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/onnx/utils.py", line 391, in _trace_and_get_graph_from_model torch.jit._get_trace_graph(model, args, strict=False, _force_outplace=False, _return_inputs_states=True) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/jit/_trace.py", line 1166, in _get_trace_graph outs = ONNXTracedModule(f, strict, _force_outplace, return_inputs, _return_inputs_states)(*args, kwargs) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl return forward_call(*input, kwargs) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/jit/_trace.py", line 127, in forward graph, out = torch._C._create_graph_by_tracing( File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/jit/_trace.py", line 118, in wrapper outs.append(self.inner(trace_inputs)) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl return forward_call(input, kwargs) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1098, in _slow_forward result = self.forward(*input, kwargs) File "/data/project_lzl/asr/funasr/models/paraformer/model.py", line 591, in _export_forward enc, enc_len = self.encoder(batch) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl return forward_call(*input, *kwargs) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1098, in _slow_forward result = self.forward(input, kwargs) File "/data/project_lzl/asr/funasr/models/sanm/encoder.py", line 547, in forward mask = self.make_pad_mask(speech_lengths) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl return forward_call(*input, *kwargs) File "/data/project_lzl/anaconda3/envs/asr/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1098, in _slow_forward result = self.forward(input, **kwargs) File "/data/project_lzl/asr/funasr/utils/torch_function.py", line 40, in forward mask = self.mask_pad[lengths - 1][..., :m].type(torch.float32) IndexError: tensors used as indices must be long, byte or bool tensors

LauraGPT commented 7 months ago

Bug has been fixed. Please update funasr by source code and try it again.