Deep Learning (Pytorch) - ND101 V7
Ce référentiel contient du matériel lié au programme NanodeGree Deep Learning V7 d'Udacity. Il se compose d'un tas de cahiers de tutoriels pour divers sujets d'apprentissage en profondeur. Dans la plupart des cas, les ordinateurs portables vous conduisent grâce à la mise en œuvre de modèles tels que des réseaux convolutionnels, des réseaux récurrents et des GAN. Il existe d'autres sujets couverts comme l'initialisation du poids et la normalisation par lots.
Il existe également des ordinateurs portables utilisés comme projets pour le programme Nanodegree. Dans le programme lui-même, les projets sont examinés par Real People (réviseurs d'UDacity), mais le code de départ est également disponible ici.
Table des matières
Tutoriels
Introduction aux réseaux de neurones
- Introduction aux réseaux de neurones: Apprenez à mettre en œuvre la descente de gradient et à l'appliquer à la prévision des modèles dans les données d'admission des étudiants.
- Analyse des sentiments avec Numpy: Andrew Trask vous guide par la construction d'un modèle d'analyse des sentiments, prédisant si un texte est positif ou négatif.
- Introduction à Pytorch: Apprenez à construire des réseaux de neurones dans Pytorch et à utiliser des réseaux pré-formés pour les classificateurs d'images de pointe.
Réseaux de neurones convolutionnels
- Réseaux de neurones convolutionnels: visualisez la sortie des couches qui composent un CNN. Apprenez à définir et à former un CNN pour classer les données MNIST, une base de données de chiffres manuscrits qui est notoire dans les champs de la machine et de l'apprentissage en profondeur. Définissez et entraînez également un CNN pour classer les images dans l'ensemble de données CIFAR10.
- Transférer l'apprentissage. Dans la pratique, la plupart des gens ne forment pas leurs propres réseaux sur d'énormes ensembles de données; Ils utilisent des réseaux pré-formés tels que VGGNET. Ici, vous utiliserez VGGNET pour aider à classer les images de fleurs sans former un réseau de bout en bout à partir de zéro.
- Initialisation du poids: explorez comment l'initialisation des poids du réseau affecte les performances.
- AutoEncoders: Créez des modèles pour la compression et le décalage d'images, en utilisant des réseaux de restauration et convolutionnels à Pytorch.
- Transfert de style: extraire le style et les fonctionnalités de contenu des images, à l'aide d'un réseau pré-formé. Implémentez le transfert de style en fonction de l'article, transfert de style d'image à l'aide de réseaux de neurones convolutionnels par Gatys et. al. Définissez les pertes appropriées pour créer de manière itérative une image cible et transférée de style de votre propre conception!
Réseaux de neurones récurrents
- Intro aux réseaux récurrents (séries chronologiques et RNN au niveau des caractères): les réseaux de neurones récurrents sont capables d'utiliser des informations sur la séquence de données, telles que la séquence de caractères dans le texte; Apprenez à les implémenter dans Pytorch pour une variété de tâches.
- Embeddings (Word2Vec): implémentez le modèle Word2Vec pour trouver des représentations sémantiques de mots à utiliser dans le traitement du langage naturel.
- Analyse des sentiments RNN: implémenter un réseau neuronal récurrent qui peut prédire si le texte d'une revue Movie est positif ou négatif.
- Attention: mettez l'attention et appliquez-la aux vecteurs d'annotation.
Réseaux adversaires génératifs
- Réseau adversaire génératif sur MNIST: former un réseau adversaire génératif simple sur l'ensemble de données MNIST.
- Normalisation par lots: Apprenez à améliorer les taux de formation et la stabilité du réseau avec des normalisations par lots.
- Deep Convolutionnel Gan (DCGAN): implémentez un ensemble de données DCGAN pour générer de nouvelles images basées sur le jeu de données des numéros de maison Street View (SVHN).
- Cyclegan: Implémentez un Cyclegan conçu pour apprendre des données non appariées et non marquées; Utilisez des générateurs formés pour transformer des images de l'été à l'hiver et vice versa.
Déploiement d'un modèle (avec AWS Sagemaker)
- Tous les cahiers d'exercice et de projet pour les leçons sur le déploiement du modèle peuvent être trouvés dans le repo GitHub lié. Apprenez à déployer des modèles pré-formés à l'aide d'AWS Sagemaker.
Projets
- Prédire les modèles de partage de vélos: implémentez un réseau neuronal dans Numpy pour prédire la location de vélos.
- Classificateur de race de chien: Construisez un réseau neuronal convolutionnel avec Pytorch pour classer toute image (même une image d'un visage) en tant que race de chien spécifique.
- Génération de scripts TV: former un réseau neuronal récurrent pour générer des scripts dans le style de dialogue de Seinfeld.
- Génération du visage: utilisez un DCGAN sur l'ensemble de données Celeba pour générer des images de visages humains nouveaux et réalistes.
Matériel électif
- Intro à TensorFlow: commencer à construire des réseaux de neurones avec TensorFlow.
- Keras: Apprenez à construire des réseaux de neurones et des réseaux de neurones convolutionnels avec des keras.
Dépendances
Configurer et gérer votre environnement avec Anaconda
Selon les documents Anaconda:
Conda est un système de gestion des packages open source et un système de gestion de l'environnement pour installer plusieurs versions de packages de logiciels et leurs dépendances et la commutation facilement entre eux. Il fonctionne sur Linux, OS X et Windows, et a été créé pour les programmes Python mais peut emballer et distribuer n'importe quel logiciel.
Aperçu
L'utilisation d'Anaconda consiste en ce qui suit:
- Installez
miniconda sur votre ordinateur, en sélectionnant la dernière version Python pour votre système d'exploitation. Si vous avez déjà installé conda ou miniconda , vous devriez pouvoir ignorer cette étape et passer à l'étape 2. - Créer et activer * un nouvel environnement
conda .
* Chaque fois que vous souhaitez travailler sur des exercices, activez votre environnement conda !
1. Installation
Téléchargez la dernière version de miniconda qui correspond à votre système.
| Linux | Mac | Fenêtre |
|---|
| 64 bits | 64 bits (installateur bash) | 64 bits (installateur bash) | 64 bits (installateur EXE) |
| 32 bits | 32 bits (installateur bash) | | 32 bits (installateur EXE) |
Installez MiniConda sur votre machine. Instructions détaillées:
- 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. Créez et activez l'environnement
Pour les utilisateurs de Windows, ces commandes suivantes doivent être exécutées à partir de l' invite Anaconda par opposition à une fenêtre Terminal Windows. Pour Mac, une fenêtre de terminal normal fonctionnera.
Git et contrôle de version
Ces instructions supposent également que git a installé pour travailler avec GitHub à partir d'une fenêtre de terminal, mais si vous ne le faites pas, vous pouvez le télécharger d'abord avec la commande:
Si vous souhaitez en savoir plus sur le contrôle de la version et l'utilisation git à partir de la ligne de commande, jetez un œil à notre cours gratuit: Contrôle de version avec Git.
Maintenant, nous sommes prêts à créer notre environnement local!
- Clone le référentiel et accédez au dossier téléchargé. Cela peut prendre une minute ou deux à clone en raison des données d'image incluses.
git clone https://github.com/udacity/deep-learning-v2-pytorch.git
cd deep-learning-v2-pytorch
Créer (et activer) un nouvel environnement, nommé deep-learning avec Python 3.6. Si vous êtes invité à procéder à l'installation (Proceed [y]/n) type y.
conda create -n deep-learning python=3.6
source activate deep-learning
conda create --name deep-learning python=3.6
activate deep-learning
À ce stade, votre ligne de commande doit ressembler à quelque chose comme: (deep-learning) <User>:deep-learning-v2-pytorch <user>$ . Le (deep-learning) indique que votre environnement a été activé et vous pouvez procéder avec d'autres installations de packages.
Installer pytorch et torchvision; Cela devrait installer la dernière version de Pytorch.
conda install pytorch torchvision -c pytorch
conda install pytorch -c pytorch
pip install torchvision
Installez quelques packages PIP requis, qui sont spécifiés dans le fichier texte des exigences (y compris OpenCV).
pip install -r requirements.txt
- C'est ça!
Maintenant, la plupart des bibliothèques deep-learning sont à votre disposition. Très occasionnellement, vous verrez un référentiel avec un fichier d'exigences d'addition, qui existe si vous souhaitez utiliser TensorFlow et Keras, par exemple. Dans ce cas, vous êtes encouragé à installer une autre bibliothèque dans votre environnement existant ou à créer un nouvel environnement pour un projet spécifique.
Maintenant, en supposant que votre environnement deep-learning est toujours activé, vous pouvez accéder au référentiel principal et commencer à regarder les ordinateurs portables:
cd
cd deep-learning-v2-pytorch
jupyter notebook
Pour quitter l'environnement lorsque vous avez terminé votre session de travail, fermez simplement la fenêtre du terminal.