Okullar için Robotik ve Mühendislik · anaokulundan liseye

Büyükler için · görselleştirici + gerçek PyTorch kodu + Colab defteri

PyTorch ile Derin Öğrenme

Tensörlerden ve otomatik türevden başlayıp nn.Module, kayıp ve optimize ediciler, eğitim döngüsü, DataLoader, evrişimli ağlar, düzenlileştirme, RNN/LSTM ve dikkat, aktarım öğrenmesi ve dağıtıma kadar. Her ünitede matematiği tarayıcıda adım adım gösteren bir görselleştirici, gerçek PyTorch kodu ve Google Colab'da çalıştıracağın bir defter var.

Ünite
10
Görselleştiriciler
14
Saat
40

1. üniteyle başlaBitirme projesi

Kimin için

Hedef kitle
Büyükler için · 16 yaş ve üstü: lise son sınıf, meslek okulu, üniversite ve meslekten öğrenenler
Süre
40 saat · 10 ünite + bitirme projesi
Ön koşul
Python ve temel NumPy; türevin ne olduğunu bilmek. Makine öğrenmesi dersindeki doğrusal regresyon, gradyan inişi ve sinir ağı derslerini bitirmiş olmak çok yardımcı olur.
Belge
Tüm üniteleri ve bitirme projesini tamamlayana Macademia katılım belgesi verilir.

Kazanımlar

  • Tensör şekillerini, yayınlamayı ve cihaz (CPU/GPU) ayrımını hatasız yönetmek
  • Autograd'ın hesaplama grafiği üstünde gradyanı nasıl bulduğunu açıklamak ve doğrulamak
  • nn.Module ile model yazmak; kayıp, optimize edici ve öğrenme oranını seçmek
  • Eğitim/doğrulama ayrımlı, tekrarlanabilir bir eğitim döngüsü ve DataLoader kurmak
  • Evrişimli ağ tasarlamak, öznitelik haritalarını okumak, aşırı öğrenmeyi düzenlileştirmeyle önlemek
  • RNN, LSTM ve dikkatin hangi sorunu çözdüğünü açıklamak
  • Önceden eğitilmiş modeli ince ayarlamak; TorchScript, ONNX ve nicemleme ile dağıtıma hazırlamak

Üniteler

ÜniteKonuGörselleştiriciler
1Tensörler: şekil, veri tipi, yayınlama ve cihaz
torch.Tensor, shape ve dtype, dilimleme, yayınlama kuralı, matmul, view ve reshape, CPU ve GPU.
Şekil oyun alanı: yayınlama, matmul, view
2Autograd: hesaplama grafiği ve geri yayılım
requires_grad, grad_fn, dinamik grafik, backward ve zincir kuralı, gradyan birikimi, no_grad, sayısal kontrol.
Hesaplama grafiği ve geri yayılım, adım adım
3nn.Module: katmanlar, parametreler ve model yazmak
nn.Module alt sınıfı, __init__ ve forward, nn.Sequential, Linear ve Conv2d, parametre sayımı, state_dict.
nn.Sequential kurucu: şekiller ve parametre sayısı
4Kayıp fonksiyonları ve optimize ediciler
MSE, ikili ve çok sınıflı çapraz entropi, logit; SGD, momentum, RMSprop, Adam; öğrenme oranı ve zamanlayıcılar.
Optimize ediciler yarışı: SGD, Momentum, RMSprop, Adam, 3B kayıp yüzeyi ve yörüngeler
5Eğitim döngüsü ve doğrulama
Dört adımlı döngü, tur ve yığın, model.train / model.eval, eğitim–doğrulama–test ayrımı, metrikler, tekrarlanabilirlik.
Eğitim döngüsü: tarayıcıda gerçek bir küçük ağ
6Dataset ve DataLoader: veriyi yığınlar hâlinde beslemek
Dataset arayüzü (__len__, __getitem__), DataLoader, batch_size, shuffle, drop_last, random_split, dönüşümler, num_workers.
DataLoader: karıştırma, yığın ve tur
7Evrişimli sinir ağları (CNN)
Evrişim katmanı, çekirdek, adım, dolgu, genişleme; havuzlama; alıcı alan; öznitelik haritaları; küçük bir MNIST CNN'i.
Evrişim aritmetiği: çekirdek, adım, dolgu, genişleme, Öznitelik haritaları: eğitilmiş CNN'in içi, CNN katmanları 3B
8Aşırı öğrenme ve düzenlileştirme
Yanlılık–varyans, aşırı öğrenme belirtileri; dropout, ağırlık sönümü (L2 / AdamW), erken durdurma, veri artırma, BatchNorm.
Aşırı öğrenme ve düzenlileştirme deneyi
9Diziler: RNN, LSTM ve dikkat
Gizli durum, zaman boyunca geri yayılım, sönen gradyan; LSTM kapıları ve hücre durumu; ölçekli nokta çarpımı dikkati ve Transformer fikri.
RNN ve LSTM: gradyan bir dizide ne kadar yol alır, Ölçekli nokta çarpımı dikkati
10Aktarım öğrenmesi ve dağıtım
Önceden eğitilmiş modeller, dondurma ve ince ayar; state_dict, TorchScript, ONNX; int8 nicemleme; uçta ve tarayıcıda çıkarım.
Aktarım öğrenmesi ve dağıtım: dondur, nicemle, ölç

Bitirme projesi

Bitirme projesi: el yazısı rakam tanıyan CNN

MNIST'te küçük bir evrişimli ağ eğit, ölç, hatalarını incele, dışa aktar ve tarayıcıda kendi çizdiğin rakamlarla dene. Colab defteri ve tarayıcıdaki tanıyıcı aynı mimariyi kullanır.

Proje ve teslimler

Nasıl çalışır

Esc
  • PanelAna sayfaSayfa
  • ModüllerTüm modüllerSayfa
  • ParçalarParça ansiklopedisiSayfa
  • Mühendislik yoluBüyükler için robotik: 128 parça, 7 seviyeSayfa
  • Robotik dersi (ESOF 323)Üniversite robotik dersi, 14 haftaSayfa
  • Drone dersiBüyükler için: parça, simülasyon, yazılım; 10 üniteSayfa
  • Blok atölyesiSerbest blok programlamaAraç
  • Devre laboratuvarıSanal Arduino ve devreAraç
  • Robot arenasıSanal robot sürüşüAraç
  • OyunlarBloklarla 8 öğretici oyunAraç
  • Mikro Kart atölyesiSanal LED kartı bloklarla programlaAraç
  • Robot atölyesiMikro Kart'ı robota tak, bloklarla görev yapAraç