Jalur ini membahas PyTorch sebagai framework deep learning yang dominan dalam riset dan kian digunakan di production. Materi disusun dari tensor dan autograd, berlanjut ke pembangunan model, pemuatan data, dan perulangan pelatihan yang ditulis secara manual sebelum abstraksi yang lebih tinggi diperkenalkan. Bagian akhir mencakup CNN, transfer learning, sekuens dan attention, teknik pelatihan profesional, hingga deployment model. Seluruh contoh dieksekusi pada build CPU PyTorch 2.15, sehingga GPU tidak diwajibkan untuk mengikuti jalur ini.
PyTorch
Jalur deep learning dengan PyTorch: dari tensor dan autograd, perulangan pelatihan yang ditulis manual, hingga CNN, transfer learning, dan deployment model.
0/0 selesai
Modul pembuka: posisi PyTorch di ranah deep learning, prasyarat yang diperlukan, dan penyiapan lingkungan kerja.
- Apa itu PyTorch ?Posisi PyTorch sebagai framework deep learning: standar riset, ekosistemnya, dan karakter eager execution-nya.
- Peta prasyaratPrasyarat jalur: Python dan NumPy, aliran data dari array NumPy ke tensor, dan kapan deep learning bukan alat yang tepat.
- Penyiapan lingkunganInstalasi PyTorch, perbedaan build CUDA dan CPU, pemeriksaan device, dan smoke test pertama.
Modul fondasi: membuat tensor, membaca atributnya, mengindeks, mengubah bentuk, broadcasting, dan memindahkan tensor antara device.
- Pembuatan tensorMembuat tensor dari list, dari array NumPy, dan dengan zeros, ones, serta rand.
- Atribut tensorTrio atribut yang selalu diperiksa: shape, dtype, dan device.
- Pengindeksan dan slicePengindeksan dan slice tensor dengan konvensi NumPy, disertai anotasi bentuk.
- Pengubahan bentukMengubah bentuk tensor dengan view, reshape, squeeze, unsqueeze, dan permute.
- BroadcastingAturan broadcasting ala NumPy pada tensor beserta jebakan operasi in-place.
- Pindah ke GPUMemindahkan tensor ke GPU dengan to(device) dan pola kode yang agnostik terhadap device.
Modul autograd: graf komputasi, pelacakan gradien melalui requires_grad dan backward, mode inferensi, hingga penurunan gradien manual.
- Penyegaran turunanPenyegaran konsep gradien dan alasan pelatihan jaringan saraf membutuhkannya.
- requires_gradMekanisme graf komputasi dan pelacakan operasi melalui atribut requires_grad.
- backward()Memanggil backward() untuk menghitung gradien dan membaca hasilnya di atribut grad.
- no_grad dan detachMode inferensi dengan no_grad dan penghentian pelacakan dengan detach.
- Penurunan gradien manualMeminimalkan sebuah fungsi hanya dengan autograd, tanpa optimizer.
Modul pembangunan model: nn.Module, layer bawaan, parameter, fungsi loss, dan optimizer.
- nn.ModulePola kelas model dengan nn.Module dan peran method forward().
- Tur layerLayer bawaan torch.nn: Linear dan fungsi aktivasi ReLU serta sigmoid.
- ParameterMenelusuri bobot model dengan named_parameters dan menghitung jumlah parameternya.
- Fungsi lossMSELoss dan CrossEntropyLoss beserta bentuk (shape) masukan yang dituntutnya.
- OptimizerOptimizer SGD, Adam, dan AdamW serta peran learning rate.
Modul data: kelas Dataset, DataLoader, dataset bawaan torchvision, transformasi, dan dataset kustom.
- Kelas DatasetKontrak kelas Dataset: method __len__ dan __getitem__.
- DataLoaderBatching, shuffling, dan jumlah worker pada DataLoader.
- Dataset bawaanMengunduh MNIST dan CIFAR-10 dari torchvision sebagai contoh dataset bawaan.
- TransformasiCompose, ToTensor, dan normalisasi pada pipeline torchvision.
- Dataset kustomMembungkus citra atau teks milik sendiri menjadi sebuah Dataset.
Modul inti pelatihan: anatomi perulangan pelatihan yang ditulis manual, mode training vs eval, hingga ritual debug overfit satu batch.
- Anatomi perulanganLima baris inti perulangan pelatihan: zero_grad, forward, loss, backward, step.
- Mengapa setiap baris adaAlasan setiap baris perulangan pelatihan ada, dijelaskan tanpa abstraksi dini.
- Mode training vs evalPerbedaan model.train() dan model.eval() serta perilaku dropout dan batchnorm.
- Epoch dan pelacakan kemajuanMelacak kurva loss antara epoch dan menampilkan kemajuan dengan tqdm.
- Ritual overfit satu batchRitual debug nomor satu: memastikan model mampu menghafal satu batch sebelum pelatihan penuh.
Modul evaluasi: perulangan evaluasi, metrik di luar akurasi, disiplin train/val/test, dan penyimpanan model.
- Perulangan evaluasiPerulangan evaluasi dengan no_grad dan penghitungan akurasi.
- Metrik di luar akurasiConfusion matrix dan akurasi per kelas sebagai pelengkap akurasi.
- Disiplin train/val/testPemisahan data train, validation, dan test beserta early stopping.
- Menyimpan dan memuatstate_dict, penyimpanan checkpoint, dan memuat kembali model.
Modul CNN: alasan konvolusi, mekanika Conv2d, pooling, batch normalization, arsitektur klasik, dan data augmentation.
- Mengapa konvolusiLokalitas, pembagian bobot, dan prior citra yang menjadikan konvolusi pilihan alami.
- Mekanika Conv2dKernel, stride, padding, dan rumus shape keluaran Conv2d.
- PoolingMax pooling dan average pooling beserta efeknya pada shape.
- Batch normalizationApa yang distabilkan batch normalization dan perbedaan perilaku mode train dan mode eval.
- Arsitektur klasikMembangun ulang jaringan kecil bergaya VGG dari blok konvolusi.
- Data augmentationFlip, crop, dan ColorJitter untuk memperkaya data citra.
Modul transfer learning: model pretrained torchvision, pembekuan backbone dan penggantian head, serta praktik fine-tuning.
- Model pretrainedModel zoo torchvision dan cara memuat bobot pretrained.
- Pembekuan dan penggantian headFeature extraction vs fine-tuning: membekukan backbone dan mengganti head.
- Praktik fine-tuningPraktik fine-tuning yang sehat, termasuk learning rate diskriminatif.
Modul sekuens: representasi data sekuens, RNN dan LSTM, embedding, serta intuisi attention.
- Data sekuensRepresentasi teks dan *time series* sebagai data sekuens.
- Pengenalan RNN/LSTMRekurensi pada RNN dan LSTM beserta keterbatasannya.
- Embeddingnn.Embedding dan representasi vektor kata.
- Intuisi attentionMental model query, key, value, dan posisi attention pada transformer.
Modul pelatihan lanjutan: mixed precision, gradient clipping, jadwal learning rate, TensorBoard, dan disiplin eksperimen.
- Mixed precisionautocast dan GradScaler beserta konteks kapan mixed precision penting.
- Gradient clippingMenjaga stabilitas pelatihan jaringan dalam dengan gradient clipping.
- Jadwal learning rateStepLR, cosine, dan warmup untuk mengatur learning rate sepanjang pelatihan.
- TensorBoardMencatat eksperimen ke TensorBoard dan membacanya secara visual.
- Disiplin eksperimenSeed, config, dan kebiasaan yang membuat eksperimen dapat direproduksi.
Modul penutup: torch.compile, ekspor ONNX, dan layanan inferensi sederhana dengan FastAPI.
- torch.compileAkselerasi melalui torch.compile dan kompatibilitas yang perlu dipahami.
- Pengenalan ekspor ONNXMemindahkan model keluar dari Python melalui ekspor ONNX.
- Layanan inferensiServer model sederhana dengan FastAPI untuk melayani inferensi.