Procesarea Streaming a Datelor Masive cu IterableDataset în PyTorch & Deep Learning Practic

Sintaxă & invocare Python
class StreamDataset(torch.utils.data.IterableDataset): ...

Spre deosebire de Dataset-ul standard bazat pe index (map-style) care necesită implementarea metodelor __len__ și __getitem__, clasa IterableDataset implementează generatorul __iter__. Este proiectată pentru seturi de date masive (tera/petabytes) stocate în cloud (AWS S3) sau fluxuri continue de mesagerie.

import torch
from torch.utils.data import IterableDataset, DataLoader

class TextStreamingDataset(IterableDataset):
    def __init__(self, file_path):
        self.file_path = file_path

    def __iter__(self):
        worker_info = torch.utils.data.get_worker_info()
        with open(self.file_path, "r") as f:
            for idx, line in enumerate(f):
                # Dacă avem mai mulți workers, distribuim liniile interfoliat
                if worker_info is not None and idx % worker_info.num_workers != worker_info.id:
                    continue
                yield torch.tensor([float(x) for x in line.strip().split(",")])

loader = DataLoader(TextStreamingDataset("date_masive.csv"), batch_size=64, num_workers=2)

La utilizarea mai multor procese paralele (num_workers > 1), este esențială împărțirea iteratorului conform ID-ului fiecărui worker pentru a evita citirea duplicată a mostrelor.

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Procesarea Streaming a Datelor Masive cu IterableDataset

Ai o întrebare despre Procesarea Streaming a Datelor Masive cu IterableDataset 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.