espnet/espnet_onnx

Unknown model file format version

ben-8878 opened this issue · 6 comments

  1. exported model sucessfully
/home/miniconda3/envs/espnet/lib/python3.8/site-packages/espnet_onnx-0.1.9-py3.8.egg/espnet_onnx/export/asr/models/language_models/embed.py:360: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
/home/miniconda3/envs/espnet/lib/python3.8/site-packages/espnet_onnx-0.1.9-py3.8.egg/espnet_onnx/export/asr/models/multihead_att.py:116: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
/home/miniconda3/envs/espnet/lib/python3.8/site-packages/torch/onnx/symbolic_helper.py:719: UserWarning: allowzero=0 by default. In order to honor zero value in shape use allowzero=1
  warnings.warn("allowzero=0 by default. In order to honor zero value in shape use allowzero=1")
  1. decode with exported model
Traceback (most recent call last):
  File "test_text_e2e_espnet.py", line 20, in <module>
    speech2text = Speech2Text("wenet")
  File "/home/miniconda3/envs/espnet/lib/python3.8/site-packages/espnet_onnx-0.1.9-py3.8.egg/espnet_onnx/asr/asr_model.py", line 43, in __init__
  File "/home/miniconda3/envs/espnet/lib/python3.8/site-packages/espnet_onnx-0.1.9-py3.8.egg/espnet_onnx/asr/abs_asr_model.py", line 53, in _build_model
  File "/home/miniconda3/envs/espnet/lib/python3.8/site-packages/espnet_onnx-0.1.9-py3.8.egg/espnet_onnx/asr/model/encoder.py", line 11, in get_encoder
  File "/home/miniconda3/envs/espnet/lib/python3.8/site-packages/espnet_onnx-0.1.9-py3.8.egg/espnet_onnx/asr/model/encoders/encoder.py", line 35, in __init__
  File "/home/miniconda3/envs/espnet/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 280, in __init__
    self._create_inference_session(providers, provider_options)
  File "/home/miniconda3/envs/espnet/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 307, in _create_inference_session
    sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model)
onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : Load model from espnet_model_onnx/wenet/full/xformer_encoder.onnx failed:/onnxruntime_src/onnxruntime/core/graph/model.cc:111 onnxruntime::Model::Model(onnx::ModelProto&&, const PathString&, const IOnnxRuntimeOpSchemaRegistryList*, const onnxruntime::logging::Logger&) Unknown model file format version.

@v-yunbin
Thank you for reporting the issue. Would you tell us the following information?

  • Sample script to reproduce this issue
  • Version of dependencies
  • What is your encoder model? Do you use Conformer or Transformer encoder?

if met the problem too on my tts model, i update torch==1.11.0+cuda==11.3, onnxruntime-gpu==1.11.0, onnx==1.11.0, it works but not well

@v-yunbin Thank you for reporting the issue. Would you tell us the following information?

  • Sample script to reproduce this issue
import soundfile
import sys
from espnet_onnx import Speech2Text
Speech2Text(asr_train_config="espnet_model/wenet/config.yaml", asr_model_file="espnet_model/wenet/valid.acc.ave_10best.pth", beam_size=1, ctc_weight=1.0, lm_weight=0.5,  quantize_asr_model=True)
speech2text = Speech2Text(tag_name="wenet")
speech, rate = soundfile.read(sys.argv[1])
nbests = speech2text(speech)
text, *_ = nbests[0]
print(text)
  • Version of dependencies
torch                   1.11.0+cpu
onnx                    1.9.0
onnxruntime             1.7.0
espnet                  202205
espnet-model-zoo        0.0.0a29
espnet-onnx             0.1.9

  • What is your encoder model? Do you use Conformer or Transformer encoder?
    get wenetspeech model from "(https://github.com/espnet/espnet/tree/master/egs2/wenetspeech)/asr1/"

@v-yunbin
Thank you. I think updating your onnxruntime version will fix this issue.
In espnet_onnx, we use opset_version=15 for model exportation, which is supported in onnxruntime>=1.11.

onnxruntime

@Masao-Someki update onnxruntime to 1.11 version,get follows error:

Traceback (most recent call last):
  File "test_text_e2e_espnet.py", line 22, in <module>
    nbests = speech2text(speech)
  File "/home/miniconda3/envs/espnet/lib/python3.8/site-packages/espnet_onnx-0.1.9-py3.8.egg/espnet_onnx/asr/asr_model.py", line 79, in __call__
  File "/home/miniconda3/envs/espnet/lib/python3.8/site-packages/espnet_onnx-0.1.9-py3.8.egg/espnet_onnx/asr/model/encoders/encoder.py", line 70, in __call__
  File "/home/miniconda3/envs/espnet/lib/python3.8/site-packages/espnet_onnx-0.1.9-py3.8.egg/espnet_onnx/asr/model/encoders/encoder.py", line 87, in forward_encoder
  File "/home/miniconda3/envs/espnet/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 192, in run
    return self._sess.run(output_names, input_feed, run_options)
onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument: [ONNXRuntimeError] : 2 : INVALID_ARGUMENT : Non-zero status code 

install follow version of dependencies, it works.
torch 1.11.0+cpu
onnx 1.11.0
onnxruntime 1.12.1
espnet 202205
espnet-model-zoo 0.0.0a29
espnet-onnx 0.1.9