🚀 測試模型
本項目提供了一個測試模型的代碼示例,用於加載數據集、模型,並進行前向傳播和損失計算。
🚀 快速開始
要測試此模型,請運行以下代碼:
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC
import torchaudio
import torch
ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")
model = Wav2Vec2ForCTC.from_pretrained("patrickvonplaten/wav2vec2_tiny_random")
def load_audio(batch):
batch["samples"], _ = torchaudio.load(batch["file"])
return batch
ds = ds.map(load_audio)
input_values = torch.nn.utils.rnn.pad_sequence([torch.tensor(x[0]) for x in ds["samples"][:10]], batch_first=True)
logits = model(input_values).logits
pred_ids = torch.argmax(logits, dim=-1)
dummy_labels = pred_ids.clone()
dummy_labels[dummy_labels == model.config.pad_token_id] = 1
dummy_labels = dummy_labels[:, -(dummy_labels.shape[1] // 4):]
loss = model(input_values, labels=dummy_labels).loss
💻 使用示例
基礎用法
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC
import torchaudio
import torch
ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")
model = Wav2Vec2ForCTC.from_pretrained("patrickvonplaten/wav2vec2_tiny_random")
def load_audio(batch):
batch["samples"], _ = torchaudio.load(batch["file"])
return batch
ds = ds.map(load_audio)
input_values = torch.nn.utils.rnn.pad_sequence([torch.tensor(x[0]) for x in ds["samples"][:10]], batch_first=True)
logits = model(input_values).logits
pred_ids = torch.argmax(logits, dim=-1)
dummy_labels = pred_ids.clone()
dummy_labels[dummy_labels == model.config.pad_token_id] = 1
dummy_labels = dummy_labels[:, -(dummy_labels.shape[1] // 4):]
loss = model(input_values, labels=dummy_labels).loss
高級用法
此代碼示例已經涵蓋了基本的測試流程,目前暫無更高級的使用場景。若有其他需求,可根據實際情況對代碼進行修改和擴展。