Secvențe de Lungime Variabilă cu nn.CTCLoss în PyTorch & Deep Learning Practic

Sintaxă & invocare Python
ctc_loss = nn.CTCLoss(blank=0)

Funcția nn.CTCLoss (Connectionist Temporal Classification) este utilizată în sarcini secvență-la-secvență unde alinierea temporală dintre intrare și etichetă este necunoscută (de exemplu, transcrierea unui fișier audio în text sau recunoașterea textului dintr-o imagine de linie manuscrisă).

import torch
import torch.nn as nn

# T: pași de timp, N: batch size, C: număr caractere (clase)
T, N, C = 50, 4, 30
ctc_loss = nn.CTCLoss(blank=0)

log_probs = torch.randn(T, N, C).log_softmax(2).detach().requires_grad_()
targets = torch.randint(1, C, (N, 20), dtype=torch.long)
input_lengths = torch.full((N,), T, dtype=torch.long)
target_lengths = torch.randint(10, 20, (N,), dtype=torch.long)

loss = ctc_loss(log_probs, targets, input_lengths, target_lengths)
print("CTC Loss:", loss.item())

Algoritmul utilizează programare dinamică (forward-backward algorithm) pentru a însuma probabilitățile peste toate alinierile posibile ce produc textul țintă după eliminarea repetițiilor și a token-ului blank.

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Secvențe de Lungime Variabilă cu nn.CTCLoss

Ai o întrebare despre Secvențe de Lungime Variabilă cu nn.CTCLoss sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.