Deep Learning (Pytorch) - ND101 V7
Repositori ini berisi materi yang berkaitan dengan program Nanodegree Pembelajaran DEEP UDACITY V7. Ini terdiri dari banyak buku catatan tutorial untuk berbagai topik pembelajaran mendalam. Dalam kebanyakan kasus, notebook menuntun Anda melalui model implementasi seperti jaringan konvolusional, jaringan berulang, dan GANS. Ada topik lain yang tercakup seperti inisialisasi berat dan normalisasi batch.
Ada juga notebook yang digunakan sebagai proyek untuk program nanodegree. Dalam program itu sendiri, proyek -proyek tersebut ditinjau oleh orang -orang nyata (pengulas Udacity), tetapi kode awal juga tersedia di sini.
Daftar isi
Tutorial
Pengantar Jaringan Saraf
- Pengantar Jaringan Saraf: Pelajari cara mengimplementasikan keturunan gradien dan menerapkannya untuk memprediksi pola dalam data penerimaan siswa.
- Analisis Sentimen dengan Numpy: Andrew Trask menuntun Anda dengan membangun model analisis sentimen, memprediksi jika beberapa teks positif atau negatif.
- Pengantar Pytorch: Pelajari cara membangun jaringan saraf di Pytorch dan menggunakan jaringan pra-terlatih untuk pengklasifikasi gambar canggih.
Jaringan saraf konvolusional
- Jaringan Saraf Konvolusional: Visualisasikan output lapisan yang membentuk CNN. Pelajari cara mendefinisikan dan melatih CNN untuk mengklasifikasikan data MNIST, database digit tulisan tangan yang terkenal di bidang mesin dan pembelajaran mendalam. Juga, tentukan dan latih CNN untuk mengklasifikasikan gambar dalam dataset CIFAR10.
- Transfer pembelajaran. Dalam praktiknya, kebanyakan orang tidak melatih jaringan mereka sendiri di set data besar; Mereka menggunakan jaringan pra-terlatih seperti VGGNet. Di sini Anda akan menggunakan VGGNet untuk membantu mengklasifikasikan gambar bunga tanpa melatih jaringan ujung ke ujung dari awal.
- Inisialisasi berat: Jelajahi bagaimana inisialisasi bobot jaringan mempengaruhi kinerja.
- Autoencoders: Bangun model untuk kompresi gambar dan de-noising, menggunakan jaringan feedforward dan convolutional di Pytorch.
- Transfer Gaya: Ekstrak gaya dan fitur konten dari gambar, menggunakan jaringan pra-terlatih. Menerapkan transfer gaya sesuai dengan kertas, transfer gaya gambar menggunakan jaringan saraf konvolusional oleh Gatys ET. al. Tentukan kerugian yang sesuai untuk secara iteratif menciptakan gambar target, gaya yang ditransfer dari desain Anda sendiri!
Jaringan saraf berulang
- Intro ke jaringan berulang (Time Series & Character-Level RNN): Jaringan saraf berulang dapat menggunakan informasi tentang urutan data, seperti urutan karakter dalam teks; Pelajari cara mengimplementasikannya di Pytorch untuk berbagai tugas.
- Embeddings (Word2Vec): Menerapkan model Word2vec untuk menemukan representasi kata semantik untuk digunakan dalam pemrosesan bahasa alami.
- Analisis Sentimen RNN: Menerapkan jaringan saraf berulang yang dapat memprediksi jika teks dari tinjauan Moview positif atau negatif.
- Perhatian: Menerapkan perhatian dan terapkan pada vektor anotasi.
Jaringan permusuhan generatif
- Jaringan permusuhan generatif di MNIST: Latih jaringan permusuhan generatif sederhana pada dataset MNIST.
- Normalisasi Batch: Pelajari cara meningkatkan tingkat pelatihan dan stabilitas jaringan dengan normalisasi batch.
- Deep Convolutional GAN (DCGAN): Menerapkan DCGAN untuk menghasilkan gambar baru berdasarkan dataset Street View House Numbers (SVHN).
- Cyclegan: Menerapkan Cyclegan yang dirancang untuk belajar dari data yang tidak berpasangan dan tidak berlabel; Gunakan generator terlatih untuk mengubah gambar dari musim panas ke musim dingin dan sebaliknya.
Menyebarkan model (dengan AWS Sagemaker)
- Semua buku catatan latihan dan proyek untuk pelajaran tentang penyebaran model dapat ditemukan di repo Github yang tertaut. Belajar menggunakan model pra-terlatih menggunakan AWS Sagemaker.
Proyek
- Memprediksi pola berbagi sepeda: Menerapkan jaringan saraf di Numpy untuk memprediksi penyewaan sepeda.
- Klasifikasi Breed Anjing: Bangun jaringan saraf konvolusional dengan pytorch untuk mengklasifikasikan gambar apa pun (bahkan gambar wajah) sebagai jenis anjing tertentu.
- Generasi Skrip TV: Latih jaringan saraf berulang untuk menghasilkan skrip dalam gaya dialog dari Seinfeld.
- Generasi Wajah: Gunakan DCGAN pada dataset Celeba untuk menghasilkan gambar wajah manusia yang baru dan realistis.
Bahan elektif
- Intro to TensorFlow: Mulai membangun jaringan saraf dengan TensorFlow.
- Keras: Belajar membangun jaringan saraf dan jaringan saraf konvolusional dengan keras.
Dependensi
Konfigurasikan dan kelola lingkungan Anda dengan Anaconda
Per Docs Anaconda:
Conda adalah sistem manajemen paket open source dan sistem manajemen lingkungan untuk menginstal beberapa versi paket perangkat lunak dan ketergantungannya dan beralih dengan mudah di antara mereka. Ini bekerja di Linux, OS X dan Windows, dan dibuat untuk program Python tetapi dapat mengemas dan mendistribusikan perangkat lunak apa pun.
Ringkasan
Menggunakan Anaconda terdiri dari yang berikut:
- Instal
miniconda di komputer Anda, dengan memilih versi Python terbaru untuk sistem operasi Anda. Jika Anda sudah menginstal conda atau miniconda , Anda harus dapat melewatkan langkah ini dan melanjutkan ke langkah 2. - Buat dan aktifkan * lingkungan
conda baru.
* Setiap kali Anda ingin melakukan latihan apa pun, aktifkan lingkungan conda Anda!
1. Instalasi
Unduh versi terbaru miniconda yang cocok dengan sistem Anda.
| Linux | Mac | Windows |
|---|
| 64-bit | 64-bit (pemasang bash) | 64-bit (pemasang bash) | 64-bit (penginstal EXE) |
| 32-bit | 32-bit (pemasang bash) | | 32-bit (penginstal EXE) |
Pasang miniconda di mesin Anda. Instruksi terperinci:
- Linux: https://conda.io/projects/conda/en/latest/user-guide/install/linux.html
- Mac: https://conda.io/projects/conda/en/latest/user-guide/install/macos.html
- Windows: https://conda.io/projects/conda/en/latest/user-guide/install/windows.html
2. Buat dan aktifkan lingkungan
Untuk pengguna Windows, perintah berikut ini perlu dieksekusi dari prompt Anaconda sebagai lawan dari jendela terminal Windows. Untuk Mac, jendela terminal normal akan berfungsi.
Kontrol git dan versi
Instruksi ini juga menganggap Anda telah menginstal git untuk bekerja dengan github dari jendela terminal, tetapi jika tidak, Anda dapat mengunduhnya terlebih dahulu dengan perintah:
Jika Anda ingin mempelajari lebih lanjut tentang kontrol versi dan menggunakan git dari baris perintah, lihat kursus gratis kami: kontrol versi dengan git.
Sekarang, kami siap menciptakan lingkungan lokal kami!
- Kloning repositori, dan arahkan ke folder yang diunduh. Ini mungkin memakan waktu satu atau dua menit untuk dikloning karena data gambar yang disertakan.
git clone https://github.com/udacity/deep-learning-v2-pytorch.git
cd deep-learning-v2-pytorch
Buat (dan aktifkan) lingkungan baru, bernama deep-learning dengan Python 3.6. Jika diminta untuk melanjutkan dengan instalasi (Proceed [y]/n) ketik y.
conda create -n deep-learning python=3.6
source activate deep-learning
conda create --name deep-learning python=3.6
activate deep-learning
Pada titik ini baris perintah Anda harus terlihat seperti: (deep-learning) <User>:deep-learning-v2-pytorch <user>$ . (deep-learning) menunjukkan bahwa lingkungan Anda telah diaktifkan, dan Anda dapat melanjutkan dengan instalasi paket lebih lanjut.
Instal Pytorch dan TorchVision; Ini harus menginstal versi terbaru Pytorch.
conda install pytorch torchvision -c pytorch
conda install pytorch -c pytorch
pip install torchvision
Instal beberapa paket PIP yang diperlukan, yang ditentukan dalam file teks persyaratan (termasuk OpenCV).
pip install -r requirements.txt
- Itu saja!
Sekarang sebagian besar perpustakaan deep-learning tersedia untuk Anda. Sangat kadang -kadang, Anda akan melihat repositori dengan file persyaratan tambahan, yang ada jika Anda ingin menggunakan TensorFlow dan Keras, misalnya. Dalam hal ini, Anda didorong untuk menginstal perpustakaan lain ke lingkungan Anda yang ada, atau menciptakan lingkungan baru untuk proyek tertentu.
Sekarang, dengan asumsi lingkungan deep-learning Anda masih diaktifkan, Anda dapat menavigasi ke repo utama dan mulai melihat notebook:
cd
cd deep-learning-v2-pytorch
jupyter notebook
Untuk keluar dari lingkungan ketika Anda telah menyelesaikan sesi kerja Anda, cukup tutup jendela terminal.