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

L'intelligence artificielle est growing en popularité depuis 2016 avec 20 % des grandes entreprises utilisant l'IA dans leurs activités (McKinsey rapport, 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 billion, dans le commerce de détail, le nombre monte en flèche pour $600 billion.

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/cadres 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 en Python nommée 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 framework Python pour l'apprentissage en profondeur. 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 code Python pour s'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 ses produits comme Skype, Cortana, Bing et Xbox. La boîte à outils est disponible en Python et C++.

MXNet

MXnet est une bibliothèque d'apprentissage profond récente. Il est accessible avec plusieurs langages de programmation dont C++, Julia, Python et R. MXNet peut être configuré pour fonctionner à la fois sur CPU et GPU. MXNet inclut un apprentissage profond de pointe architecture telle que le réseau neuronal convolutif et la mémoire à long terme. MXNet est conçu pour fonctionner en harmonie 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 sur le CPU et le GPU. La principale utilisation de Caffe est le réseau neuronal convolutif. Bien qu'en 2017, Facebook ait étendu Caffe avec un apprentissage plus approfondi architecture, y compris le réseau neuronal récurrent. Caffe est utilisé par des universitaires et des 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 dispose d'une API Python pratique, bien que des API C++ soient é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
MICROSOFT TROUSSE À OUTILS COGNITIVE 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, Android, iOS, 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 un apprentissage profond à grande échelle architecture 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

Following sont 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

À l'aide de Google Cloud, vous pouvez entraîner un framework de machine learning basé sur TensorFlow, Scikit-learn, XGBoost ou Keras. L'apprentissage automatique de Google Cloud 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 est 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, conversationnel chatbots et 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 chatbot à une application

Studio d'apprentissage automatique Azure

Azure Machine Learning Studio est probablement l’une des approches les plus conviviales de l’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 une solution d'apprentissage automatique. Le modèle peut être déployé efficacement sous forme de services Web et utilisé dans plusieurs applications comme Excel.

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

Studio d'apprentissage automatique Azure

Lorsque le modèle est prêt, le développeur peut l'enregistrer et le transférer vers Azure Galerie ou Place de marché Azure.

Azure Machine Learning peut être intégré à R ou Python leur package intégré personnalisé.

IBM WatsonML

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 WatsonML

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.