From ecc653871d305c79002d2630c7cf0d0e1d6bf1ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E7=BB=9C=E6=BA=9F?= Date: Fri, 10 Jan 2025 19:26:36 +0800 Subject: [PATCH] Fix: export-onnx.py(expected all tensors to be on the same device) (#1699) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 由于SenseVoiceSmall.from_pretrained() 调用的funasr.auto.auto_model.AutoModel.build_model()默认device是cuda (在cuda available的环境中) ```py device = kwargs.get("device", "cuda") if not torch.cuda.is_available() or kwargs.get("ngpu", 1) == 0: device = "cpu" kwargs["batch_size"] = 1 kwargs["device"] = device ``` 而export-onnx.py里的tensor默认都是cpu, 导致 RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu 所以直接在加载model的时候指定cpu --- scripts/sense-voice/export-onnx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sense-voice/export-onnx.py b/scripts/sense-voice/export-onnx.py index 97d9a506..48b68636 100755 --- a/scripts/sense-voice/export-onnx.py +++ b/scripts/sense-voice/export-onnx.py @@ -119,7 +119,7 @@ def display_params(params): def main(): - model, params = SenseVoiceSmall.from_pretrained(model="iic/SenseVoiceSmall") + model, params = SenseVoiceSmall.from_pretrained(model="iic/SenseVoiceSmall", device="cpu") display_params(params) generate_tokens(params)