You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Hugging Face预训练模型转为.pt并本地运行?解决加载报错

正确导出并本地运行UrukHan/wav2vec2-russian模型的方法

错误原因

你遇到的报错是因为AutoModelForCTC.from_pretrained()并不支持直接加载单独的.pt权重文件,该方法的参数需要是Hugging Face模型仓库ID,或者包含模型配置文件、权重文件等完整文件的本地文件夹路径。之前只保存了模型的权重字典(state_dict),没有保存模型的结构配置信息,所以加载时无法识别。

正确的模型导出代码

直接使用save_pretrained()方法保存完整模型和处理器,会自动生成所有必要的配置文件:

from transformers import AutoModelForCTC, Wav2Vec2Processor

# 定义模型名称
model_name = "UrukHan/wav2vec2-russian"

# 加载模型和处理器
model = AutoModelForCTC.from_pretrained(model_name)
processor = Wav2Vec2Processor.from_pretrained(model_name)

# 将完整模型和处理器保存到本地文件夹
model.save_pretrained("./russian-wav2vec2-local")
processor.save_pretrained("./russian-wav2vec2-local")

正确的本地推理代码

从本地文件夹加载模型和处理器,规范完成推理流程:

from transformers import AutoModelForCTC, Wav2Vec2Processor
import librosa
import torch

# 从本地文件夹加载模型和处理器
model = AutoModelForCTC.from_pretrained("./russian-wav2vec2-local")
processor = Wav2Vec2Processor.from_pretrained("./russian-wav2vec2-local")

# 设置模型为评估模式
model.eval()

# 加载音频文件
FILE = "wav.wav"
audio, sr = librosa.load(FILE, sr=16000)

# 用处理器规范预处理音频,生成模型输入张量
input_values = processor(audio, sampling_rate=sr, return_tensors="pt").input_values

# 执行推理
with torch.no_grad():
    logits = model(input_values).logits

# 解码得到转录文本
pred_ids = torch.argmax(logits, dim=-1)
transcription = processor.batch_decode(pred_ids)[0]

print(transcription)

内容的提问来源于stack exchange,提问作者vonexel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 04:31:13