Partiționarea pe GPU-uri Multiple cu DistributedSampler în PyTorch & Deep Learning Practic

Sintaxă & invocare Python
sampler = DistributedSampler(dataset, num_replicas=..., rank=...)

În antrenarea distribuită pe mai multe acceleratoare GPU cu DistributedDataParallel (DDP), fiecare GPU rulează un proces independent. Pentru ca fiecare placă să proceseze o fracțiune unică a setului de date fără suprapuneri, se atașează un DistributedSampler la DataLoader.

import torch
from torch.utils.data import DataLoader
from torch.utils.data.distributed import DistributedSampler

sampler = DistributedSampler(
    dataset,
    num_replicas=torch.distributed.get_world_size(),
    rank=torch.distributed.get_rank(),
    shuffle=True
)

# shuffle=False în DataLoader când se utilizează sampler
loader = DataLoader(dataset, batch_size=32, sampler=sampler)

# În bucla de antrenare: set_epoch este CRITIC pentru amestecare corectă!
for epoch in range(num_epochs):
    sampler.set_epoch(epoch)
    for batch in loader:
        train_step(batch)

Apelul sampler.set_epoch(epoch) la începutul fiecărei epoci asigură determinarea unei noi permutări pseudo-aleatorii sincronizate între toate nodurile.

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Partiționarea pe GPU-uri Multiple cu DistributedSampler

Ai o întrebare despre Partiționarea pe GPU-uri Multiple cu DistributedSampler 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.