在参考 https://github.com/alibaba-damo-academy/FunASR/tree/main/runtime/python/onnxruntime文档,使用ContextualParaformer ,需要使用model_eb.onnx或者model_eb_quant.onnx。请问modelscope-funasr这两个onnx文件怎么生成?在文档中没有找到相关方法
在使用 ContextualParaformer 时,model_eb.onnx
和 model_eb_quant.onnx
是两个关键的 ONNX 模型文件。根据您的问题,以下是生成这两个文件的具体方法和步骤:
首先,确保您已经克隆了 FunASR 的代码仓库,并安装了相关依赖。如果尚未完成,请按照以下步骤操作:
# 克隆 FunASR 代码仓库
git clone https://github.com/alibaba-damo-academy/FunASR.git
# 进入代码仓库根目录
cd FunASR
# 安装依赖包
pip install -r requirements.txt
model_eb.onnx
和 model_eb_quant.onnx
是基于 ContextualParaformer 模型导出的 ONNX 文件。要生成这些文件,您需要先下载或训练对应的模型权重。
.pt
或 .pth
格式)。如果您需要自定义训练模型,请参考 FunASR 文档中的训练流程。训练完成后,您将获得模型权重文件。
FunASR 提供了工具将 PyTorch 模型转换为 ONNX 格式。以下是具体步骤:
确保您的环境中已安装 onnx
和 onnxruntime
:
pip install onnx onnxruntime
在 FunASR 的代码仓库中,通常会提供一个用于导出 ONNX 文件的脚本。例如:
python tools/export_onnx.py \
--model_path <path_to_your_model.pth> \
--output_path model_eb.onnx
<path_to_your_model.pth>
:替换为您下载或训练的模型权重路径。model_eb.onnx
:导出的目标 ONNX 文件名。如果您需要生成量化版本的 ONNX 文件(如 model_eb_quant.onnx
),可以使用 ONNX 提供的量化工具:
python -m onnxruntime.quantization.preprocess \
--input model_eb.onnx \
--output model_eb_quant.onnx
生成 ONNX 文件后,建议使用 ONNX Runtime 验证其正确性:
import onnxruntime as ort
import numpy as np
# 加载 ONNX 模型
session = ort.InferenceSession("model_eb.onnx")
# 构造输入数据(根据模型输入格式调整)
input_data = np.random.randn(1, 80, 100).astype(np.float32)
# 推理测试
outputs = session.run(None, {"input": input_data})
print(outputs)
model_eb_quant.onnx
)在推理速度和内存占用上通常优于原始模型,但可能会略微降低精度。通过上述步骤,您可以成功生成 model_eb.onnx
和 model_eb_quant.onnx
文件,并将其用于 ContextualParaformer 的推理任务。如果仍有疑问,请进一步查阅 FunASR 的官方文档或提交问题至其 GitHub 仓库。
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352