Raisons de choisir PyTorch pour le Deep Learning
L'apprentissage en profondeur et l' apprentissage automatique ont été les mots à la mode parmi tous ces dernières années, et il y a une explication parfaite à cela.
L'apprentissage automatique a permis aux systèmes d'apprendre de l'expérience tandis que l'apprentissage profond a propulsé l'apprentissage automatique à une échelle encore plus grande grâce à l'utilisation d'ensembles de données étendus. Cette augmentation de ML et DL a donné lieu à divers langages de programmation s et des bibliothèques qui est arrivé et a permis aux programmeurs , chercheurs et données scientifiques pour réaliser l'impensable. Certains des meilleurs prétendants à la meilleure bibliothèque Deep Leaning sont TensorFlow et PyTorch . Pour l'instant, nous nous concentrerons davantage sur PyTorch.
PyTorch
Facebook a publié PyTorch pour la scène de programmation en 2016 , qui est basé sur la bibliothèque Torch de Lua .
PyTorch est une bibliothèque d'apprentissage automatique gratuite et open source et est actuellement à la v1.4 . PyTorch existe depuis près de trois ans maintenant et a subi de nombreuses améliorations pour être en meilleure position. PyTorch a été créé pour se sentir plus rapide et plus pythonique que le reste de la compétition. Il inclut également la prise en charge du calcul C, C ++ et Tensor .
Google Trends - Intérêt de PyTorch au fil du temps
Raisons de choisir PyTorch pour le Deep Learning
Avant de passer aux raisons pour lesquelles il ne faut pas essayer PyTorch, voici quelques-uns des projets et bibliothèques uniques et passionnants de Deep Learning que PyTorch a contribué à donner naissance à:
● CheXNet: détection des pneumonies au niveau des radiologues sur radiographies pulmonaires avec apprentissage en profondeur.
● Horizon: une plateforme d'apprentissage appliqué par renforcement (Applied RL)
● PYRO : Pyro est un langage de programmation probabiliste universel (PPL) écrit en Python et pris en charge par PyTorch sur le backend.
● Kaolin de NVIDIA en tant que bibliothèque PyTorch pour accélérer l'apprentissage profond 3D
● TorchCV pour la mise en œuvre de la vision par ordinateur dans vos projets
● PyDLT en tant qu'ensemble d'outils d'apprentissage en profondeur
● la bibliothèque fastai optimise votre processus d'entraînement du réseau neuronal
● et bien plus encore.
Ce sont quelques frameworks et projets construits sur TensorFlow et PyTorch. Vous pouvez en trouver plus sur Github et sur les sites officiels de TF et PyTorch.
Dans un monde de TensorFlow , PyTorch est capable de tenir tout seul avec ses points forts. Voici quelques-uns des faits saillants expliquant pourquoi PyTorch conviendrait parfaitement à vos projets de Deep Learning:
1. PyTorch est plus pythonique
PyTorch est un framework go to qui nous permet d'écrire du code de manière plus pythonique . De plus, le type de dynamisme qu'il prend en charge en utilisant du code python naïf est remarquable.
PyTorch a tendance à s'incliner davantage vers Python par rapport à toute autre bibliothèque. C'est parce que PyTorch est relativement facile à comprendre et qu'il semble plus naturel , natif et conforme au code Python .
Pour tous ceux qui ont travaillé avec Python, ils se sentiront à l'aise avec tout avec PyTorch, comme les fonctions de perte, les optimiseurs, les transformations, les chargeurs de données et bien d'autres classes.
Le code de chaque exemple PyTorch (Vision et NLP) partage une structure commune:
2. Facile à utiliser
Par rapport à PyTorch, TensorFlow a une courbe d'apprentissage relativement plus raide. Les programmeurs Python auront besoin de moins de temps pour s'adapter à PyTorch car pour eux, cela ressemblera très probablement à une extension du framework Python. Un débogage facile et un excellent ensemble d'API simples jouent un rôle central pour faciliter la prise en charge de PyTorch par les programmeurs.
3. Bibliothèques utiles
Un grand soutien de la communauté s'accompagne d'un grand enthousiasme et de contributions envers la communauté. En utilisant PyTorch, les programmeurs sont allés de l'avant et ont créé des projets qui sont disponibles pour toute personne intéressée. Vous trouverez ci-dessous une liste combinée d'une poignée de ces projets dans divers domaines tels que la vision par ordinateur , le traitement du langage naturel et les bibliothèques génératives:
● pro_gan_pytorch pour tirer parti des fonctionnalités de ProGAN
● BoTorch pour l'utilisation des optimisations bayésiennes
● ParlAI pour partager, former et tester des modèles de dialogue
● OpenNMT-py pour la mise en œuvre d'un système de traduction automatique neuronale
● MUSE pour l'intégration de mots multilingues
● skorch pour fusionner le code scikit-learn avec PyTorch
4. Parallélisme des données sans effort
Le parallélisme des données dans PyTorch est efficace et vous permet de diviser les données en lots , qui sont ensuite envoyés à plusieurs GPU pour traitement. En utilisant cette technique, PyTorch peut déplacer une partie importante de la charge de travail du CPU vers le GPU. Pour le parallélisme des données , il utilise la classe torch.nn.DataParallel.
Distributed Data-Parallel est une fonctionnalité de PyTorch que vous pouvez combiner avec Data-Parallel pour gérer des cas d'utilisation exigeant de grands ensembles de données et des modèles suffisamment grands pour un seul GPU. Lorsque toutes les tâches du pool de GPU sont terminées, le résultat est collecté, fusionné et vous est renvoyé par Data-Parallel.
5. Excellent pour les chercheurs
PyTorch est une aubaine pour les chercheurs car il s'est avéré être utilisé par au moins 70% des chercheurs travaillant sur des frameworks. Bien qu'il soit le choix leader du secteur pour le développement d'applications, TensorFlow n'a pas encore rattrapé PyTorch à cet égard. L'une des raisons derrière cela pourrait être la simplicité et la facilité d'utilisation que PyTorch a à offrir avec de meilleures performances.
6. Prêt pour mobile
À partir de la v1.3 , PyTorch a ajouté la prise en charge du déploiement sur les appareils Android et iOS . Cette fonctionnalité apporte tous les avantages de PyTorch aux périphériques de périphérie pour répondre aux applications nécessitant des latences plus faibles. L'objectif derrière PyTorch mobile est de réduire le cycle de développement en prenant en charge les API de base pour les plates-formes mobiles, éliminant ainsi le besoin d'exporter vers des frameworks mobiles tels que Caffe2. Cela permet une réduction significative de l'encombrement sur l'appareil. La prise en charge d'un réglage précis des scripts de construction a également été ajoutée pour un meilleur contrôle.
Démarrez avec PyTorch Mobile:
Démarrez sur Android
Démarrez sur iOS
7. Débogage facile
PyTorch est ridiculement facile à déboguer lorsque vous avez la possibilité d'accéder à chaque ligne et la façon habituelle d'imprimer après chaque ligne. Cerise sur le gâteau, les objets et le fonctionnement de PyTorch contiennent les données réelles et non les références symboliques, ce qui facilite la vie des programmeurs. Certains des débogueurs standard pour PyTorch sont:
● ipdb
● pdb
● PyCharm
Disons, par exemple, que vous pouvez utiliser la fonction «pdb.set_trace ()» de pdb pour placer des points d'arrêt dans votre code afin de rechercher la racine de l'erreur. En outre, les graphiques de calcul dynamiques de PyTorch permettent une modification dynamique et un débogage rapide pendant l'exécution de votre code.
8. Prise en charge d'ONNX
Open Neural Network Exchange agit comme un écosystème open source pour l'intelligence artificielle en fournissant un terrain d'entente aux programmeurs d'IA pour travailler de manière interchangeable sur une variété de cadres, d'outils et de bibliothèques. ONNX le fait en fournissant un format de fichier standard qui fonctionne sur plusieurs frameworks et matériels.
En ce qui concerne PyTorch, ONNX est livré avec une prise en charge intégrée de PyTorch et d'une large gamme d'autres frameworks tels que Caffe2, MXNet, TensorFlow et plus encore. ONNX facilite l' exportation et la migration de leurs modèles PyTorch vers un format ouvert que d'autres frameworks peuvent intégrer.
9. Prise en charge des graphiques de calcul dynamiques
En visualisant chaque modèle comme un graphe acyclique dirigé, PyTorch offre une approche dynamique pour définir des graphes de calcul. Alors que d'autres frameworks permettent une définition de graphe statique, PyTorch prend en charge la création d'un graphe de calcul dynamique dans lequel vous êtes libre de le manipuler en déplacement. Les réseaux de neurones récurrents parmi tant d'autres sont l'un de ces éléments qui profite le plus de cet aspect dynamique de PyTorch.
10. Fort soutien de la communauté
PyTorch offre également un excellent support communautaire . La maison de PyTorch a une documentation détaillée sur chacune de ses fonctionnalités. Toutes les dernières mises à jour de la bibliothèque sont bien expliquées. Avec chaque nouvel ajout, des didacticiels de support et des ressources connexes peuvent également être trouvés pour obtenir cette expérience pratique précieuse.
PyTorch Forum est un excellent endroit hautement recommandé pour les débutants pour poser leurs questions et pour les vétérans pour partager leurs idées avec d'autres programmeurs. Avec plus d'une centaine de publications par jour, la communauté est assez active et encourage les gens à se joindre à PyTorch.
Voici quelques-uns de la communauté de développeurs PyTorch , des ressources et des didacticiels pour contribuer, apprendre et obtenir des réponses à vos questions -
● Formulaire de discussion PyTorch
● Communauté PyTorch Slack
● Exemples PyTorch
● Docs PyTorch
● Tutoriels Github Pytorch
● Aide-mémoire PyTorch pour débutant
● Notes de version de PyTorch
● Deep Learning avec Pytorch: un blitz de 60 minutes
● Utilisation des données du didacticiel de Google Drive dans Colab
● Documents et didacticiels en chinois
● Tutoriels en coréen
Conclusion
Avec un grand nombre de fonctionnalités intuitives pour les programmeurs de Deep Learning, PyTorch a beaucoup à offrir aux personnes à travers un large éventail de niveaux de compétences. Bien qu'il offre un point d'entrée facile, PyTorch ne doit pas être pris à la légère car il offre des fonctionnalités qui non seulement offrent de meilleures performances dans certains aspects, mais offrent également des fonctionnalités supplémentaires uniques. Nous avons discuté de certaines des fonctionnalités de PyTorch les plus couramment évoquées pour vous aider à faire ce saut vers PyTorch dont vous étiez si sceptique.
Des lectures plus intéressantes -
J'espère que vous avez trouvé cet article utile! Voici quelques lectures intéressantes, j'espère que vous les aimerez aussi -
à propos de l'auteur
Claire D . est un Content Crafter and Marketer chez Digitalogy - un marché de sourcing technologique et de matchmaking personnalisé qui connecte les gens avec des développeurs et designers présélectionnés et de premier ordre en fonction de leurs besoins spécifiques à travers le monde. Connectez-vous avec Digitalogy sur Linkedin , Twitter , Instagram .