Funcții Personalizate collate_fn în PyTorch DataLoader în PyTorch & Deep Learning Practic

Sintaxă & invocare Python
DataLoader(dataset, collate_fn=my_collate_fn)

DataLoader-ul standard din PyTorch apelează implicit default_collate, care presupune că toate mostrele returnate de setul de date au dimensiuni identice. Când procesăm propoziții de lungimi diferite sau imagini de rezoluții variabile, este obligatoriu să furnizăm o funcție collate_fn personalizată.

import torch
from torch.utils.data import DataLoader
from torch.nn.utils.rnn import pad_sequence

def padding_collate_fn(batch):
    # batch este o listă de tuple (vector_tokeni, eticheta)
    secvente = [item[0] for item in batch]
    etichete = torch.tensor([item[1] for item in batch])
    
    # Adăugare padding cu tokenul 0 până la lungimea maximă din batch-ul curent
    secvente_padded = pad_sequence(secvente, batch_first=True, padding_value=0)
    return secvente_padded, etichete

loader = DataLoader(dataset, batch_size=16, collate_fn=padding_collate_fn)

Aplicarea padding-ului dinamic la nivel de batch (în loc de un padding fix global de 512 tokeni) reduce drastic numărul de calcule inutile în operațiile de atenție.

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Funcții Personalizate collate_fn în PyTorch DataLoader

Ai o întrebare despre Funcții Personalizate collate_fn în PyTorch DataLoader 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.