Il s'agit du code correspondant pour le livre "Deep Learning Framework Pytorch: Getting Bear and Practice (2e édition)", mais il peut également être utilisé comme guide et tutoriel pour débutants Pytorch indépendants.
Nouvelle mise à niveau
La deuxième édition de ce livre a été nouvellement améliorée sur la base de la première édition, et le code du livre est écrit sur la première édition de Pytorch version 1.8. Il a été mis à jour entièrement en combinaison avec les opinions des lecteurs de la première édition, y compris trois modules: utilisation de base, expansion avancée et applications pratiques.
contenu
Le contenu de ce livre (tutoriel / référentiel) est illustré sur la figure: 
On peut voir que ce tutoriel peut être divisé en trois parties:
Utilisation de base (chapitre 2 à 5) explique le contenu de Pytorch. Cette partie présente les principaux modules de Pytorch et certains outils couramment utilisés en profondeur. Pour cette partie du contenu, nous utilisons ici le cahier Jupyter comme un outil d'enseignement, et les lecteurs peuvent modifier et exécuter le cahier et expérimenter à plusieurs reprises.
- Le chapitre 2 présente l'installation de Pytorch et la configuration des environnements d'apprentissage connexes. Dans le même temps, ce chapitre introduit le contenu principal de Pytorch de manière embrouillée pour aider les lecteurs à acquérir une compréhension préliminaire de Pytorch.
- Le chapitre 3 introduit l'utilisation du tenseur multidimensionnel du tenseur et du système différentiel automatique Autograd dans Pytorch, et donne des exemples de la façon d'utiliser le tenseur et l'autograd pour obtenir une régression linéaire et de comparer leurs différences. Ce chapitre analyse la structure de base du tenseur et les principes d'Autograd pour aider les lecteurs à comprendre les modules sous-jacents de Pytorch de manière plus exhaustive.
- Le chapitre 4 présente l'utilisation de base du module de réseau neuronal NN dans Pytorch, explique les couches, les fonctions d'activation, les fonctions de perte et les optimisateurs dans le réseau neuronal, et amène les lecteurs à utiliser moins de 50 lignes de code pour implémenter le Resnet de structure de réseau classique.
- Le chapitre 5 présente des outils tels que le chargement des données, les modèles de pré-formation, les outils de visualisation et l'accélération du GPU dans Pytorch. L'utilisation de ces outils peut rationnellement améliorer l'efficacité de la programmation des utilisateurs.
Extensions avancées (chapitres 6-8) expliquent quelques extensions avancées dans Pytorch. L'apprentissage de cette partie peut aider les lecteurs à écrire des programmes plus efficaces.
- Le chapitre 6 présente des idées de vectorisation dans Pytorch, y compris principalement les règles de radiodiffusion, les index de base, les index avancés et les opérations d'Einstein. À la fin de ce chapitre, les lecteurs conduisent à utiliser des idées de vectorisation pour mettre en œuvre des opérations convolutionnelles, l'entrelacement, le retour sur investissement et les opérations uniques inversées dans l'apprentissage en profondeur.
- Le chapitre 7 présente des opérations distribuées à Pytorch. L'informatique distribuée et l'informatique parallèle peuvent accélérer le processus de formation du réseau. Ce chapitre présente en détail les principes de base de l'informatique parallèle et de l'informatique distribuée, et présente également comment utiliser Torch.Distributed et Horovod pour la formation distribuée de pytorch.
- Le chapitre 8 présente l'extension CUDA dans Pytorch, les lecteurs conduisaient à utiliser CUDA pour implémenter les fonctions sigmoïdes. Dans le même temps, ce chapitre résume la relation entre Cuda, Nvidia-Driver, Cudnn et Python.
Applications pratiques (chapitre 9-13) Utilisez Pytorch pour implémenter plusieurs applications cool et intéressantes. Pour cette partie du contenu, ce référentiel fournit un code d'implémentation complet et fournit des modèles pré-formés sous forme de démos pour les lecteurs à tester.
- Le chapitre 9 est un chapitre qui relie le passé et le futur. L'objectif n'est pas d'enseigner aux lecteurs de nouvelles fonctions et de nouvelles connaissances, mais de la combiner avec une compétition classique à Kaggle pour réaliser le problème de classification binaire de l'image le plus simple en Deep Learning. Au cours du processus de mise en œuvre, les lecteurs seront amenés à examiner les connaissances des 5 premiers chapitres et aider les lecteurs à organiser des programmes et à coder raisonnablement pour rendre le programme plus facile à lire et à mieux entretenir. Dans le même temps, ce chapitre met en vedette comment déboguer dans Pytorch.
- Le chapitre 10 présente les principes de base de la génération de réseaux contradictoires, ce qui a conduit les lecteurs à implémenter un générateur d'avatar d'anime à partir de zéro et peut utiliser le réseau adversaire génératif pour générer des avatars d'anime avec différents styles.
- Le chapitre 11 présente une certaine connaissance de base du traitement du langage naturel et présente en détail les principes de base de Charrnn et Transformer. Ce chapitre amène les lecteurs à utiliser le transformateur pour écrire automatiquement des poèmes. Ce programme peut imiter les personnes anciennes pour séquencer les poèmes et générer des poèmes cachés.
- Le chapitre 12 présente les principes de base du transfert de style et mène les lecteurs à mettre en œuvre des réseaux de neurones qui prennent en charge le transfert de style arbitraire. Grâce à ce réseau, les lecteurs peuvent convertir n'importe quelle image en style des peintures célèbres.
- Le chapitre 13 introduit les principes de base de la détection d'objets et conduit les lecteurs à implémenter un algorithme de détection de cible de suppression de la valeur maximale, sans ancre et maximum. Les idées de conception de Centernet peuvent être migrées vers des problèmes de vision informatique classiques tels que la détection d'objets, l'estimation de la posture humaine et le suivi cible d'images tridimensionnelles.
Le contenu de description du texte et un contenu Markdown dans le cahier appartiennent à la première ébauche de ce livre. Il peut y avoir des inconvénients dans la description. Veuillez comprendre que l'auteur le corrigera progressivement plus tard . Cette partie du contenu garantit une cohérence de 80% avec le livre, mais il peut y avoir des problèmes grammaticaux. En raison des contraintes de temps, l'auteur le mettra progressivement à jour à l'avenir.
Avez-vous besoin d'acheter un livre?
Les livres ne sont pas nécessaires . Cet entrepôt contient plus de 60% du contenu texte et plus de 90% du code du livre, en particulier le contenu d'introduction dans les quelques chapitres précédents, qui conservent presque complètement le contenu d'explication dans le livre. Les lecteurs peuvent utiliser ce tutoriel normalement même s'ils n'achètent pas de livres.
Si vous pensez que vous préférez l'expérience de lecture de la version papier et que vous souhaitez laisser un livre magnifiquement imprimé et entièrement imprimé pour une lecture facile, vous pourriez tout aussi bien dépenser un peu d'argent pour soutenir le travail de l'auteur au cours de la dernière année ~
Description du code
Le code est principalement testé sous Python3 + Pytorch1.6 ~ 1,8 pour obtenir le résultat final. Python2 n'a pas encore été testé et la version mise à jour de Pytorch n'a pas encore été testée.
S'il y a une inappropriation ou des domaines qui doivent être améliorés, veuillez ouvrir une discussion sur le problème ou soumettre une demande de traction.
Configuration de l'environnement
Pour installer Pytorch, veuillez sélectionner la version spécifiée sur le site officiel pour l'installer et l'installer en un seul clic. Pour plus de méthodes d'installation, veuillez vous référer aux instructions du livre.
Cloner le référentiel
git clone https : // github . com / chenyuntc / PyTorch - book . git
^ _ ^
Si vous avez des bogues, des explications ou des confusions peu claires, veuillez ouvrir un problème
Bienvenue à des demandes de traction
Codage heureux!

- JD.com Lien d'achat
- Lien d'achat dangdang