TensorFlow vs Theano vs Torch vs Keras : bibliothèque d'apprentissage profond

L'intelligence artificielle gagne en popularité depuis 2016 : 20 % des grandes entreprises utilisent l'IA dans leurs activités (McKinsey Ecojustice, 2018). Selon le même rapport, l’IA peut créer une valeur substantielle dans tous les secteurs. Dans le secteur bancaire, par exemple, le potentiel de l’IA est estimé à $300 milliards, dans le commerce de détail, ce chiffre monte en flèche $600 de dollars.

Pour libérer la valeur potentielle de l’IA, les entreprises doivent choisir le bon cadre d’apprentissage en profondeur. Dans ce tutoriel, vous découvrirez les différentes bibliothèques disponibles pour effectuer des tâches de deep learning. Certaines bibliothèques existent depuis des années, tandis que de nouvelles bibliothèques comme TensorFlow ont vu le jour ces dernières années.

8 meilleures bibliothèques/frameworks d'apprentissage profond

Dans cette liste, nous comparerons les meilleurs frameworks de Deep Learning. Tous sont open source et populaires dans la communauté des data scientists. Nous comparerons également les fournisseurs de services ML populaires

Torche

Torch est une ancienne bibliothèque d'apprentissage automatique open source. Sa première sortie remonte à 15 ans. Son principal langage de programmation est LUA, mais il a une implémentation en C. En comparant PyTorch à TensorFlow, il prend en charge une vaste bibliothèque d'algorithmes d'apprentissage automatique, y compris l'apprentissage en profondeur. Il prend en charge l'implémentation CUDA pour le calcul parallèle.

L'outil d'apprentissage en profondeur Torch est utilisé par la plupart des principaux laboratoires tels que Facebook, Google, Twitter, Nvidia, etc. Torch possède une bibliothèque à Python nomme Pytorch.

Inférer.net

Infer.net est développé et maintenu par Microsoft. Infer.net est une bibliothèque axée principalement sur la statistique bayésienne. Infer.net est un outil de visualisation pour le Deep Learning conçu pour offrir aux praticiens des algorithmes de pointe pour la modélisation probabiliste. La bibliothèque contient outils analytiques telles que l'analyse bayésienne, la chaîne de Markov cachée, le clustering.

Keras

Keras est un Python cadre pour l’apprentissage profond. Il s'agit d'une bibliothèque pratique pour construire n'importe quel algorithme d'apprentissage en profondeur. L'avantage de Keras est qu'il utilise le même Python code à exécuter sur CPU ou GPU. En outre, l'environnement de codage est pur et permet de former des algorithmes de pointe pour la vision par ordinateur, la reconnaissance de texte, entre autres.

Keras a été développé par François Chollet, chercheur chez Google. Keras est utilisé dans des organisations de premier plan comme le CERN, Yelp, Square ou Google, Netflixet Uber.

Keras

Theano

Theano est une bibliothèque d'apprentissage profond développée par l'Université de Montréal en 2007. Comparant Theano à TensorFlow, elle offre un calcul rapide et peut être exécutée à la fois sur CPU et GPU. Theano a été développé pour entraîner des algorithmes de réseaux neuronaux profonds.

Microsoft Boîte à outils cognitive (CNTK)

Microsoft La boîte à outils, anciennement connue sous le nom de CNTK, est une bibliothèque d'apprentissage en profondeur développée par Microsoft. Selon Microsoft, la bibliothèque est parmi les plus rapides du marché. Microsoft Toolkit est une bibliothèque open source, bien que Microsoft l'utilise largement pour son produit comme Skype, Cortana, Bing et Xbox. La boîte à outils est disponible à la fois dans Python et la C++.

MXNet

MXnet est une bibliothèque d'apprentissage profond récente. Il est accessible avec plusieurs langages de programmation dont C++, Julie, Python et R. MXNet peut être configuré pour fonctionner à la fois sur CPU et GPU. MXNet comprend une architecture d'apprentissage profond de pointe telle que le réseau neuronal convolutionnel et la mémoire à long terme. MXNet est conçu pour fonctionner dans harmony avec une infrastructure cloud dynamique. Le principal utilisateur de MXNet est Amazon

Caffe

Caffe est une bibliothèque construite par Yangqing Jia alors qu'il était doctorant à Berkeley. En comparant Caffe à TensorFlow, Caffe est écrit en C++ et peut effectuer des calculs à la fois sur le CPU et le GPU. Les principales utilisations de Caffe sont les réseaux neuronaux convolutionnels. Cependant, en 2017, Facebook a étendu Caffe avec une architecture d'apprentissage plus profonde, y compris le réseau neuronal récurrent. Caffe est utilisé par les universitaires et les startups, mais aussi par certaines grandes entreprises comme Yahoo!.

TensorFlow

TensorFlow est un projet open source de Google. TensorFlow est la bibliothèque d'apprentissage profond la plus célèbre de nos jours. Il a été rendu public fin 2015

TensorFlow

TensorFlow est développé en C++ et a pratique Python API, bien que C++ Des API sont également disponibles. Des entreprises de premier plan comme Airbus, Google, IBM et ainsi de suite utilisent TensorFlow pour produire des algorithmes d'apprentissage en profondeur.

TensorFlow contre Theano contre Torch contre Keras contre infer.net contre CNTK contre MXNet contre Caffe : différences clés

Bibliothèque Plateforme Écrit en Prise en charge de Cuda Exécution parallèle A formé des modèles RNN CNN
Torche Linux, macOS, Windows Lua Oui Oui Oui Oui Oui
Inférer.Net Linux, macOS, Windows Visual Studio Non Non Non Non Non
Keras Linux, macOS, Windows Python Oui Oui Oui Oui Oui
Theano Évaluation Multiplateforme Python Oui Oui Oui Oui Oui
TensorFlow Linux, macOS, Windows, Android C++, Python, CUDA Oui Oui Oui Oui Oui
BOÎTE À OUTILS COGNITIVE MICROSOFT Linux, Windows, Mac avec Docker C++ Oui Oui Oui Oui Oui
Caffe Linux, macOS, Windows C++ Oui Oui Oui Oui Oui
MXNet Linux, Windows, macOS, AndroidIOS, Javascript C++ Oui Oui Oui Oui Oui

Verdict

TensorFlow est la meilleure bibliothèque de toutes car elle est conçue pour être accessible à tous. La bibliothèque Tensorflow intègre différentes API pour créer une architecture d'apprentissage en profondeur à grande échelle comme CNN ou RNN. TensorFlow est basé sur le calcul de graphes, il permet au développeur de visualiser la construction du réseau de neurones avec Tensorbad. Cet outil est utile pour déboguer le programme. Enfin, Tensorflow est conçu pour être déployé à grande échelle. Il fonctionne sur CPU et GPU.

Tensorflow attire la plus grande popularité sur GitHub par rapport aux autres bibliothèques d'apprentissage en profondeur.

Comparaison de l'apprentissage automatique en tant que service

Voici 4 fournisseurs de services DL populaires

Google Cloud ML

Google propose un modèle pré-entraîné pour les développeurs disponible dans Cloud AutoML. Cette solution existe pour un développeur sans solide expérience en machine learning. Les développeurs peuvent utiliser le modèle pré-entraîné de pointe de Google sur leurs données. Il permet à tous les développeurs de former et d'évaluer n'importe quel modèle en quelques minutes seulement.

Google fournit actuellement une API REST pour la vision par ordinateur, la reconnaissance vocale, la traduction et la PNL.

Google Cloud ML

En utilisant Google Cloud, vous pouvez former un framework d'apprentissage automatique basé sur TensorFlow, Scikit-learn, XGBoost ou Keras. Google Cloud l'apprentissage automatique entraînera les modèles sur son cloud.

L'avantage d'utiliser le cloud computing de Google est la simplicité de déploiement du machine learning en production. Il n'est pas nécessaire de configurer le conteneur Docker. De plus, le cloud s'occupe de l'infrastructure. Il sait comment allouer les ressources avec les CPU, les GPU et les TPU. Cela rend la formation plus rapide avec le calcul en parallèle.

AWS Sage Maker

Un concurrent majeur de Google Cloud is Amazon nuage, AWS. Amazon vous avez développé Amazon SageMaker pour permettre aux data scientists et aux développeurs de créer, former et mettre en production n'importe quel modèle d'apprentissage automatique.
SageMaker est disponible dans un Jupyter Notebook et comprend la bibliothèque d'apprentissage automatique la plus utilisée, TensorFlow, MXNet, Scikit-learn, entre autres. Les programmes écrits avec SageMaker sont automatiquement exécutés dans les conteneurs Docker. Amazon gère l’allocation des ressources pour optimiser la formation et le déploiement.

AWS Sage Maker

Amazon fournit une API aux développeurs afin d'ajouter de l'intelligence à leurs applications. Dans certains cas, il n'est pas nécessaire de réinventer la roue en créant de nouveaux modèles à partir de zéro alors qu'il existe de puissants modèles pré-entraînés dans le cloud. Amazon fournit des services API pour la vision par ordinateur, les chatbots conversationnels et les services linguistiques :

Les trois principales API disponibles sont :

  • Amazon Reconnaissance: fournit une reconnaissance d'image et de vidéo à une application
  • Amazon Comprendre: Effectuer du text mining et du traitement du langage neuronal pour, par exemple, automatiser le processus de vérification de la légalité des documents financiers
  • Amazon Lex : Ajouter un chatbot à une application

Azure Studio d'apprentissage automatique

L'une des approches les plus conviviales de l'apprentissage automatique est probablement Azure Studio d'apprentissage automatique. L’avantage majeur de cette solution est qu’aucune connaissance préalable en programmation n’est requise.

Microsoft Azure Machine Learning Studio est un outil collaboratif par glisser-déposer permettant de créer, former, évaluer et déployer des solutions de machine learning. Le modèle peut être déployé efficacement sous forme de services Web et utilisé dans plusieurs applications comme Excel.

Azure L'interface d'apprentissage automatique est interactive, permettant à l'utilisateur de créer un modèle simplement en faisant glisser et en déposant des éléments rapidement.

Azure Studio d'apprentissage automatique

Lorsque le modèle est prêt, le développeur peut le sauvegarder et le transférer vers Azure Galerie de photos or Azure Marché.

Azure L'apprentissage automatique peut être intégré à R ou Python leur package intégré personnalisé.

IBM Watson ML

Watson Studio peut simplifier les projets de données grâce à un processus rationalisé qui permet d'extraire de la valeur et des informations à partir des données pour aider l'entreprise à devenir plus intelligente et plus rapide. Watson Studio offre un environnement collaboratif de science des données et d'apprentissage automatique facile à utiliser pour créer et former des modèles, préparer et analyser des données et partager des informations en un seul endroit. Watson Studio est facile à utiliser avec un code glisser-déposer.

IBM Watson ML

Watson Studio prend en charge certains des frameworks les plus populaires tels que Tensorflow, Keras, Pytorch, Caffe et peut déployer un algorithme d'apprentissage en profondeur sur les derniers GPU de Nvidia pour accélérer la modélisation.

Verdict

De notre point de vue, la solution cloud de Google est celle qui est la plus recommandée. La solution cloud de Google propose des prix inférieurs d'au moins 30 % à ceux d'AWS pour les solutions de stockage de données et d'apprentissage automatique. Google fait un excellent travail pour démocratiser l'IA. Elle a développé un langage open source, TensorFlow, optimisé entrepôt de données connexion, fournit d'énormes outils allant de la visualisation des données, de l'analyse des données à l'apprentissage automatique. De plus, Google Console est ergonomique et bien plus complète qu'AWS ou Windows.