modelscope-funasr这两个onnx文件怎么生成?在文档中没有找到相关方法。

在参考 https://github.com/alibaba-damo-academy/FunASR/tree/main/runtime/python/onnxruntime文档,使用ContextualParaformer ,需要使用model_eb.onnx或者model_eb_quant.onnx。请问modelscope-funasr这两个onnx文件怎么生成?在文档中没有找到相关方法

展开
收起
嘟嘟嘟嘟嘟嘟 2023-12-27 08:03:07 176 分享 版权
阿里云 AI 助理回答

在使用 ContextualParaformer 时,model_eb.onnxmodel_eb_quant.onnx 是两个关键的 ONNX 模型文件。根据您的问题,以下是生成这两个文件的具体方法和步骤:


1. 确认 FunASR 的代码仓库

首先,确保您已经克隆了 FunASR 的代码仓库,并安装了相关依赖。如果尚未完成,请按照以下步骤操作:

# 克隆 FunASR 代码仓库
git clone https://github.com/alibaba-damo-academy/FunASR.git

# 进入代码仓库根目录
cd FunASR

# 安装依赖包
pip install -r requirements.txt

2. 准备 ContextualParaformer 模型

model_eb.onnxmodel_eb_quant.onnx 是基于 ContextualParaformer 模型导出的 ONNX 文件。要生成这些文件,您需要先下载或训练对应的模型权重。

方法一:从 ModelScope 下载预训练模型

  • 访问 ModelScope 平台,搜索 ContextualParaformer 模型。
  • 下载预训练模型权重文件(通常为 .pt.pth 格式)。

方法二:自行训练模型

如果您需要自定义训练模型,请参考 FunASR 文档中的训练流程。训练完成后,您将获得模型权重文件。


3. 导出 ONNX 文件

FunASR 提供了工具将 PyTorch 模型转换为 ONNX 格式。以下是具体步骤:

(1) 配置环境

确保您的环境中已安装 onnxonnxruntime

pip install onnx onnxruntime

(2) 使用导出脚本

在 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 文件名。

(3) 量化模型(可选)

如果您需要生成量化版本的 ONNX 文件(如 model_eb_quant.onnx),可以使用 ONNX 提供的量化工具:

python -m onnxruntime.quantization.preprocess \
    --input model_eb.onnx \
    --output model_eb_quant.onnx

4. 验证生成的 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)

5. 注意事项

  • 模型兼容性:确保使用的模型权重与 ContextualParaformer 的架构一致。
  • 依赖版本:ONNX 导出和量化可能对 PyTorch 和 ONNX 版本有要求,请参考 FunASR 文档中的版本说明。
  • 性能优化:量化后的模型(model_eb_quant.onnx)在推理速度和内存占用上通常优于原始模型,但可能会略微降低精度。

通过上述步骤,您可以成功生成 model_eb.onnxmodel_eb_quant.onnx 文件,并将其用于 ContextualParaformer 的推理任务。如果仍有疑问,请进一步查阅 FunASR 的官方文档或提交问题至其 GitHub 仓库。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352

热门讨论

热门文章

还有其他疑问?
咨询AI助理