Skip to main content
Learn AI Create the Future — with Pranay
  • Learn
  • Paths
  • Projects
  • Practice
  • Glossary
  • Errors
  • LeetCode
  • Main site

Main site →
Select language

Translation is unavailable right now. Your browser’s own “Translate page” usually works.

Machine translation by Google

Topics

  • 🧱 Foundations 2 sections
  • 🤖 Machine Learning 11 sections
  • 📊 Statistics and Experiments 4 sections
  • 🧭 Doing the Work 9 sections
  • 🧠 Deep Learning 11 sections
    • Deep Learning 13 lessons
    • PyTorch Tensors 10 lessons
    • Autograd in Depth 10 lessons
    • Building Models with nn.Module 11 lessons
    • Datasets and DataLoaders 10 lessons
      • Overview
      • Writing your own Dataset
      • What DataLoader actually does
      • Writing a collate_fn
      • num_workers, prefetching and the Windows spawn trap
      • Samplers and weighted sampling
      • IterableDataset for streams and huge files
      • Image transforms with torchvision v2
      • Datasets that do not fit in memory
      • Surviving corrupt and missing files
      • Finding out whether the GPU is waiting for data
    • Optimisers, Schedulers and the Training Loop 9 lessons
    • Debugging PyTorch 9 lessons
    • GPU Memory and Speed 10 lessons
    • Multi-GPU and Distributed Training 11 lessons
    • Checkpoints, Export and Inference 7 lessons
    • Reinforcement Learning 13 lessons
  • 🧰 Libraries and Frameworks 4 sections
  • 💬 Language and NLP 15 sections
  • 👁️ Computer Vision 13 sections
  • 🎙️ Speech, Forecasting and Recommenders 3 sections
  • ✨ Generative AI and LLMs 4 sections
  • 🔬 Inside a Transformer 11 sections
  • ⚙️ Production and MLOps 16 sections
  • 🌍 AI in the Real World 12 sections
  • ⚖️ Safety, Ethics and Law 2 sections

See all topics

  1. Home
  2. Learn
  3. Datasets and DataLoaders

🧠 Deep Learning · Section 030

🚚 Datasets and DataLoaders

Getting data into the model quickly and correctly — the part that quietly decides how fast your training runs.

Every lesson in this section is written by Pranay Mahendrakar.

10 of 10 lessons published · Three reading levels on every lesson

Start with “Writing your own Dataset”

Lessons in order

Work top to bottom. Each lesson assumes the one above it.

  1. 01 Writing your own Dataset
  2. 02 What DataLoader actually does
  3. 03 Writing a collate_fn
  4. 04 num_workers, prefetching and the Windows spawn trap
  5. 05 Samplers and weighted sampling
  6. 06 IterableDataset for streams and huge files
  7. 07 Image transforms with torchvision v2
  8. 08 Datasets that do not fit in memory
  9. 09 Surviving corrupt and missing files
  10. 10 Finding out whether the GPU is waiting for data
Previous Building Models with nn.Module Next Optimisers, Schedulers and the Training Loop

Learn AI

Learn Artificial Intelligence the easy way.

Learn. Build. Ask. Share.

Free forever. No sign-up, no ads, no tracking.

Learn

  • All topics
  • Learning paths
  • Projects
  • Practice playground
  • AI glossary
  • Error database
  • LeetCode solutions

Start here

  • Python for AI
  • Mathematics for AI
  • Machine Learning
  • Classic Algorithms in Depth
  • Linear Models and Regularisation
  • Ensembles and Gradient Boosting

This site

  • Search
  • New lessons feed
  • Sitemap
  • About Pranay Mahendrakar
  • pranaymahendrakar.com

© 2026 Pranay Mahendrakar. Written for people who are starting from zero.

10 new lessons every day. If something here is wrong or confusing, that is worth fixing — say so.