0Pricing
Learn AI with Python · Pelajaran

Dataset dan DataLoader Khusus

torch.utils.data.Dataset, __len__/__getitem__, DataLoader, transformasi, augmentasi.

Dataset dan DataLoader Khusus adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.

Memasukkan Data ke Model

Pelatihan memerlukan cara yang efisien untuk membaca, mengubah, dan mengelompokkan data. PyTorch menyediakan dua abstraksi: Kumpulan Data (mengetahui cara mengambil satu sampel) dan DataLoader (mengelompokkan dan mengacaknya).

from torch.utils.data import Dataset, DataLoader

Antarmuka Kumpulan Data

Subkelas khusus Dataset harus menerapkan dua metode: __len__ (jumlah sampel) dan __getitem__ (mengembalikan sampel pada suatu indeks). PyTorch memanggil keduanya untuk mengambil data.

Menerapkan __len__

__len__ memberi tahu PyTorch ukuran kumpulan data agar PyTorch mengetahui jumlah indeks yang tersedia dan jumlah kelompok dalam satu putaran pelatihan.

class ImageDataset(Dataset):
    def __init__(self, paths, labels):
        self.paths = paths
        self.labels = labels

    def __len__(self):
        return len(self.paths)

Menerapkan __getitem__

__getitem__ memuat dan mengembalikan satu sampel (beserta labelnya) berdasarkan suatu indeks. Di sinilah Anda membuka berkas gambar dan mengubahnya menjadi tensor.

from PIL import Image

    def __getitem__(self, idx):
        img = Image.open(self.paths[idx]).convert("RGB")
        label = self.labels[idx]
        return img, label

Mengapa Transformasi?

Gambar mentah memiliki ukuran dan rentang piksel yang beragam. Transformasi menyeragamkannya: mengubah ukuran ke bentuk tetap, mengubahnya menjadi tensor, dan menormalkan nilai piksel agar model berlatih secara stabil.

from torchvision import transforms

transforms.Compose

transforms.Compose merangkai beberapa transformasi menjadi satu alur pemrosesan yang diterapkan secara berurutan. Rangkaian yang umum adalah Resize, lalu ToTensor, kemudian Normalize.

tf = transforms.Compose([
    transforms.Resize((224, 224)),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406],
                         std=[0.229, 0.224, 0.225])
])

Memahami Transformasi

Resize menetapkan ukuran spasial; ToTensor mengubah gambar PIL menjadi tensor dan menskalakan piksel ke [0,1]; Normalize menggeser dan menskalakan setiap kanal hingga memiliki rata-rata nol dan varians satu, sehingga mempercepat konvergensi.

Menerapkan Transformasi dalam Kumpulan Data

Masukkan transformasi ke dalam kumpulan data dan terapkan di dalam __getitem__ agar setiap sampel diproses secara konsisten saat diambil.

class ImageDataset(Dataset):
    def __init__(self, paths, labels, transform):
        self.paths, self.labels, self.transform = paths, labels, transform

    def __getitem__(self, idx):
        img = Image.open(self.paths[idx]).convert("RGB")
        return self.transform(img), self.labels[idx]

Membungkus dalam DataLoader

DataLoader mengubah kumpulan data menjadi sesuatu yang dapat diiterasi berupa kelompok. Atur batch_size untuk mengendalikan jumlah sampel per langkah dan shuffle=True untuk mengacak urutan pada setiap putaran pelatihan (penting untuk pelatihan).

dataset = ImageDataset(paths, labels, tf)
loader = DataLoader(dataset, batch_size=32, shuffle=True)

num_workers untuk Kecepatan

num_workers membuat subproses paralel untuk memuat dan mengubah data saat GPU melakukan pelatihan, sehingga latensi masukan/keluaran tersembunyi. Nilai seperti 4 sering kali membuat GPU tetap mendapatkan data alih-alih menunggu.

loader = DataLoader(
    dataset,
    batch_size=32,
    shuffle=True,
    num_workers=4
)

Mengulang Kelompok

Ulangi DataLoader untuk mendapatkan tensor dalam kelompok. Setiap iterasi menghasilkan (images, labels), di mana gambar memiliki bentuk [batch_size, channels, H, W] dan siap diberikan ke model.

for images, labels in loader:
    print(images.shape)  # torch.Size([32, 3, 224, 224])
    break

Pemeriksaan Singkat

Uji pengetahuan Anda tentang alur data.

Rangkuman: Kumpulan Data dan DataLoader

Anda membuat Dataset khusus dengan __len__ dan __getitem__, melakukan prapemrosesan gambar menggunakan transforms.Compose (Resize, ToTensor, Normalize), lalu membungkusnya dalam DataLoader dengan batch_size, shuffle, dan num_workers untuk memasukkan kelompok data ke model secara efisien.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dataset dan DataLoader Khusus” gratis?

Ya — teks lengkap “Dataset dan DataLoader Khusus” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Dataset dan DataLoader Khusus”?

torch.utils.data.Dataset, __len__/__getitem__, DataLoader, transformasi, augmentasi. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Learn AI with Python?

Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Dataset dan DataLoader Khusus” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?

Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Tensor PyTorch dan Autograd
  2. Dataset dan DataLoader Khusus
  3. Membangun dan Melatih CNN di PyTorch
  4. Deteksi Objek dengan YOLOv8
← Kembali ke Learn AI with Python