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

TypeError: forward() missing 1 required positional argument: 'x_mask' #1292

Closed LGoldenDragon closed 8 months ago

LGoldenDragon commented 8 months ago

你好,我在使用下面的命令导出模型为onnx格式的时候报错 python -m funasr.export.export_model --model-name /datasets/ljl_file/FunASR/egs/aishell/paraformer/exp/baseline_train_asr_paraformer_conformer_12e_6d_2048_256_zh_char_exp1/ --export-dir /datasets/ljl_file/FunASR/egs/aishell/paraformer/export --type onnx --quantize false export model: /datasets/ljl_file/FunASR/egs/aishell/paraformer/exp/baseline_train_asr_paraformer_conformer_12e_6d_2048_256_zh_char_exp1/

funasr使用的版本为0.8.8 modelscope使用的版本为1.10.0 pytorch 2.0.0
pytorch-cuda 11.7 configuration配置文件如下 image

报错如下: ================ Diagnostic Run torch.onnx.export version 2.0.0 ================ verbose: False, log level: Level.ERROR ======================= 0 NONE 0 NOTE 0 WARNING 0 ERROR ========================

Traceback (most recent call last): File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/runpy.py", line 192, in _run_module_as_main return _run_code(code, main_globals, None, File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/runpy.py", line 85, in _run_code exec(code, run_globals) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/funasr/export/export_model.py", line 296, in export_model.export(model_name) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/funasr/export/export_model.py", line 226, in export self._export(model, tag_name) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/funasr/export/export_model.py", line 71, in _export self._export_onnx(model, verbose, export_dir) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/funasr/export/export_model.py", line 239, in _export_onnx torch.onnx.export( File "<@beartype(torch.onnx.utils.export) at 0x7f1d1c33de50>", line 348, in export File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/onnx/utils.py", line 506, in export _export( File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/onnx/utils.py", line 1548, in _export graph, params_dict, torch_out = _model_to_graph( File "<@beartype(torch.onnx.utils._model_to_graph) at 0x7f1d1c333d30>", line 11, in _model_to_graph File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/onnx/utils.py", line 1113, in _model_to_graph graph, params, torch_out, module = _create_jit_graph(model, args) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/onnx/utils.py", line 989, in _create_jit_graph graph, torch_out = _trace_and_get_graph_from_model(model, args) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/onnx/utils.py", line 893, in _trace_and_get_graph_from_model trace_graph, torch_out, inputs_states = torch.jit._get_trace_graph( File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/jit/_trace.py", line 1268, in _get_trace_graph outs = ONNXTracedModule(f, strict, _force_outplace, return_inputs, _return_inputs_states)(*args, kwargs) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl return forward_call(*args, kwargs) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/jit/_trace.py", line 127, in forward graph, out = torch._C._create_graph_by_tracing( File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/jit/_trace.py", line 118, in wrapper outs.append(self.inner(trace_inputs)) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl return forward_call(args, kwargs) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1488, in _slow_forward result = self.forward(*input, kwargs) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/funasr/export/models/e2e_asr_paraformer.py", line 68, in forward enc, enc_len = self.encoder(batch) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl return forward_call(*args, *kwargs) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1488, in _slow_forward result = self.forward(input, kwargs) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/funasr/export/models/encoder/conformer_encoder.py", line 69, in forward xspad,= self.embed(speech) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl return forward_call(*args, *kwargs) File "/datasets/ljl_file/minconda/minconda3/envs/paraformer/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1488, in _slow_forward result = self.forward(input, **kwargs) TypeError: forward() missing 1 required positional argument: 'x_mask' 请问我该如何解决这个问题?

LauraGPT commented 8 months ago

Sorry, the conformer could not export onnx in the moment. We would support it in Feb.

LGoldenDragon commented 8 months ago

Sorry, the conformer could not export onnx in the moment. We would support it in Feb.

However, the model I exported is a Paraformer model trained on aishell1, not a Conformer model.

R1ckShi commented 8 months ago

Sorry, the conformer could not export onnx in the moment. We would support it in Feb.

However, the model I exported is a Paraformer model trained on aishell1, not a Conformer model.

the encoder inside is a Conformer Encoder with is not supported currently, on going.