如何将预训练的拥抱脸模型转换为.pt并在本地完全运行?

问题描述 投票:0回答:1

我正在尝试将这个model转换为.pt格式。它对我来说工作得很好,所以我不想对其进行微调。如何将其导出为.pt并运行界面?

我尝试使用它转换为.pt:

from transformers import AutoConfig, AutoProcessor, AutoModelForCTC, AutoTokenizer, Wav2Vec2Processor
import librosa
import torch



# Define the model name
model_name = "UrukHan/wav2vec2-russian"

# Load the model and tokenizer
config = AutoConfig.from_pretrained(model_name)
model = AutoModelForCTC.from_pretrained(model_name, config=config)
processor = Wav2Vec2Processor.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Save the model as a .pt file
torch.save(model.state_dict(), "model.pt")

# Save the tokenizer as well if needed
tokenizer.save_pretrained("model-tokenizer")

但不幸的是它没有运行界面:

model = AutoModelForCTC.from_pretrained("model.pt")
processor = AutoProcessor.from_pretrained("model.pt")


# Perform inference with the model
FILE = 'here is wav.wav'
audio, _ = librosa.load(FILE, sr = 16000)
audio = list(audio)
def map_to_result(batch):
  with torch.no_grad():
    input_values = torch.tensor(batch, device="cpu").unsqueeze(0) #, device="cuda"
    logits = model(input_values).logits
  pred_ids = torch.argmax(logits, dim=-1)
  batch = processor.batch_decode(pred_ids)[0]
  return batch
map_to_result(audio)
print(map_to_result(audio))


model.eval()

并遇到错误: `model.pt 不是本地文件夹,也不是“https://huggingface.co/models”上列出的有效模型标识符

`

machine-learning pytorch huggingface-transformers transformer-model
1个回答
0
投票

在这种情况下,您不必担心文件结尾。

torch.save
基本上将输入写入 zip 文件(它也适用于任意 python 对象,而不仅仅是权重)。
.pt
文件结尾只是惯例。

Huggingface 将模型权重保存到目录中,通常采用

model_name.hf/
的形式。

您看到的错误是因为

AutoModelForCTC.from_pretrained("model.pt")
导致 Huggingface 代码寻找名为
model.pt
的目录,而此时不存在此类目录。

当您第一次下载模型时,权重会保存到缓存中,通常是

~/.cache/huggingface/hub

如果您想将模型权重明确保存到不同的目录,您可以运行:

model = AutoModelForCTC.from_pretrained(model_name, config=config)
model.save_model("path_to_save") 
© www.soinside.com 2019 - 2024. All rights reserved.