0Pricing
Deep Learning Academy · Pelajaran

collate_fn untuk Masukan dengan Panjang Beragam

Pad dan susun sampel yang tidak seragam

collate_fn untuk Masukan dengan Panjang Beragam adalah pelajaran Deep Learning Academy gratis di CoddyKit. Ini adalah pelajaran 3 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 Deep Learning Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Deep Learning Academy mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

When Samples Don't Match

Stacking into a batch needs every sample the same shape. But sentences and audio clips have different lengths, so the default collate step fails. 🧩

What collate_fn Does

The DataLoader gathers a list of samples and passes them to collate_fn, which merges them into one batch. By default it simply stacks tensors.

Ragged Inputs Break Stacking

Try to stack a length-5 and a length-8 sequence and PyTorch raises a shape error. Ragged lengths are exactly the case a custom collate must handle.

Write Your Own collate_fn

You pass a function to the DataLoader's collate_fn argument. It receives a list of samples and returns whatever batch shape your model expects.

loader = DataLoader(ds, batch_size=4, collate_fn=my_collate)

Step One: Split the List

Inside your function, unzip the list of pairs into separate sequences and labels. Now you can treat each group on its own before merging.

def my_collate(batch):
    seqs, labels = zip(*batch)

Pad to the Longest

The trick for variable lengths is padding: extend every sequence to the longest one with a filler value, so they finally share a shape.

pad_sequence Does It for You

PyTorch ships pad_sequence, which pads a list of tensors to equal length and stacks them. Set batch_first so the batch dimension comes first.

from torch.nn.utils.rnn import pad_sequence
padded = pad_sequence(seqs, batch_first=True)

Remember the Real Lengths

Padding adds fake tokens, so also return each sequence's true length. Your model uses these to ignore the padded positions during the forward pass.

lengths = torch.tensor([len(s) for s in seqs])

Stack the Labels

Labels are usually fixed size, so a normal stack works for them. Return the padded inputs, the lengths, and the stacked labels together.

labels = torch.stack(labels)
return padded, lengths, labels

Mask Out the Padding

Later you build a mask from the lengths so the loss and attention skip padded slots. Padding fills shape without polluting the gradients.

One Function, Any Shape

With a custom collate_fn, the same DataLoader handles text, audio, and graphs. You control exactly how loose samples become one tidy batch.

Quick Check

Why do variable-length sequences need a custom collate_fn?

Recap

A custom collate_fn turns a list of uneven samples into one batch, usually by padding sequences to equal length and tracking their real sizes. 🎉

Pertanyaan yang Sering Diajukan

Apakah pelajaran “collate_fn untuk Masukan dengan Panjang Beragam” gratis?

Ya — teks lengkap “collate_fn untuk Masukan dengan Panjang Beragam” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Deep Learning Academy, upgrade ke CoddyKit PRO. Kursus Deep Learning Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “collate_fn untuk Masukan dengan Panjang Beragam”?

Pad dan susun sampel yang tidak seragam Kamu berlatih Deep Learning Academy 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 Deep Learning Academy?

Tidak diperlukan pengalaman sebelumnya. Deep Learning Academy 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 3 dari 4.

Berapa lama pelajaran “collate_fn untuk Masukan dengan Panjang Beragam” 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 Deep Learning Academy ini?

Ya. Setiap pelajaran Deep Learning Academy 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. Tulis Kelas Dataset Kustom
  2. Batch, Pengacakan, dan num_workers
  3. collate_fn untuk Masukan dengan Panjang Beragam
  4. Normalisasi dan Standarisasi Masukan
← Kembali ke Deep Learning Academy