Kemas Urutan dan Tangani Padding
Latih secara efisien pada panjang yang beragam
Kemas Urutan dan Tangani Padding adalah pelajaran Deep Learning Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.
Batch Menginginkan Bentuk Persegi Panjang
Untuk memproses banyak urutan sekaligus, sebuah batch harus berbentuk persegi panjang yang rapi. Namun, kalimat nyata memiliki panjang yang berbeda-beda sehingga tidak sejajar.
Padding hingga Panjang yang Sama
Solusinya adalah padding: tambahkan token pengisi, biasanya zeros, ke urutan yang pendek agar setiap baris dalam batch memiliki panjang yang sama.
Pembantu pad_sequence
pad_sequence milik PyTorch menumpuk daftar tensor dengan panjang yang berbeda-beda menjadi satu batch dengan padding melalui satu pemanggilan.
from torch.nn.utils.rnn import pad_sequence
batch = pad_sequence(seqs, batch_first=True)Padding Memboroskan Komputasi
Token pengisi tersebut palsu. Jika RNN tetap memprosesnya, komputasi terbuang dan padding dapat mengotori keadaan tersembunyi.
Catat Panjang Sebenarnya
Sebelum melakukan padding, catat panjang sebenarnya dari setiap urutan. Anda akan memberikan panjang ini kepada PyTorch agar mengetahui di mana data sebenarnya berakhir.
lengths = [len(s) for s in seqs]Mengemas Batch
pack_padded_sequence mengubah batch yang telah diberi padding beserta panjangnya menjadi bentuk ringkas yang dapat dijalankan RNN tanpa menyentuh padding.
packed = pack_padded_sequence(batch, lengths, batch_first=True)Jalankan RNN pada Data yang Dikemas
Berikan objek yang telah dikemas langsung ke nn.LSTM atau nn.GRU. Sel akan melewati langkah yang berisi padding, sehingga memori tetap bersih dan jelas.
out_packed, h_n = lstm(packed)Buka Kemasan Output
Untuk membaca kembali output pada setiap langkah, panggil pad_packed_sequence guna mengembalikan bentuk persegi panjang dengan padding setelah RNN selesai.
out, lengths = pad_packed_sequence(out_packed, batch_first=True)Urutkan berdasarkan Panjang
Pengemasan klasik mengharuskan urutan diurutkan dari yang paling panjang terlebih dahulu. Atur enforce_sorted ke False dan PyTorch akan menangani batch yang tidak terurut untuk Anda.
Samarkan Loss
Bahkan dengan pengemasan, abaikan posisi yang berisi padding saat melakukan penilaian. Mask atau ignore_index mencegah token palsu masuk ke dalam loss.
loss_fn = nn.CrossEntropyLoss(ignore_index=PAD_ID)Hubungkan ke DataLoader
Lakukan padding di dalam collate_fn khusus agar setiap batch tiba dalam keadaan sudah diberi padding, dengan panjang yang siap digunakan untuk pengemasan.
Pemeriksaan Singkat
Mengapa batch yang telah diberi padding perlu dikemas sebelum diberikan ke RNN?
Ringkasan
Beri padding agar batch sejajar, catat panjang sebenarnya, lalu kemas agar RNN mengabaikan pengisi. Samarkan juga token berpading dalam loss. ✅
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Kemas Urutan dan Tangani Padding” gratis?
Ya — teks lengkap “Kemas Urutan dan Tangani Padding” 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 “Kemas Urutan dan Tangani Padding”?
Latih secara efisien pada panjang yang beragam 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 4 dari 4.
Berapa lama pelajaran “Kemas Urutan dan Tangani Padding” 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
- Mengapa Urutan Memerlukan Memori
- Sel RNN Biasa
- Gerbang LSTM dan GRU
- Kemas Urutan dan Tangani Padding