Exécuter un modèle d'apprentissage profond en Java: une prise en main rapide

Nous sommes ravis d'annoncer la Deep Java Library (DJL), une bibliothèque open source pour développer, former et exécuter des modèles d'apprentissage en profondeur en Java à l'aide d'API intuitives de haut niveau. Si vous êtes un utilisateur Java intéressé par l'apprentissage en profondeur, DJL est un excellent moyen de commencer à apprendre. Si vous êtes un développeur Java travaillant avec des modèles d'apprentissage profond, DJL simplifiera la façon dont vous entraînez et exécutez des prédictions. Dans cet article, nous montrerons comment exécuter une prédiction avec un modèle d'apprentissage en profondeur pré-entraîné en quelques minutes.

Avant de commencer à coder, nous voulons partager notre motivation pour la construction de cette bibliothèque. En examinant le paysage de l'apprentissage profond, nous avons trouvé une abondance de ressources pour les utilisateurs de Python. Par exemple, NumPy pour l'analyse des données; Matplotlib pour les visualisations; frameworks tels que MXNet, PyTorch, TensorFlow et bien d'autres. Mais il existe très peu de ressources pour les utilisateurs de Java, même si c'est le langage le plus populaire en entreprise. Nous nous sommes fixé comme objectif de fournir à des millions d'utilisateurs Java des outils open source pour former et servir des modèles d'apprentissage profond dans un langage qu'ils connaissent déjà.

DJL est construit avec des concepts Java natifs en plus des frameworks d'apprentissage en profondeur existants. Il offre aux utilisateurs l'accès aux dernières innovations en matière d'apprentissage en profondeur et la possibilité de travailler avec du matériel de pointe. Les API simples résument la complexité impliquée dans le développement de modèles d'apprentissage en profondeur, les rendant faciles à apprendre et à appliquer. Avec l'ensemble de modèles pré-formés de model-zoo, les utilisateurs peuvent immédiatement commencer à intégrer l'apprentissage en profondeur dans leurs applications Java.

AWS

* Autres frameworks actuellement non pris en charge.

L'apprentissage en profondeur pénètre dans l'entreprise à travers une variété de cas d'utilisation. Dans le commerce de détail, il est utilisé pour prévoir la demande des clients et analyser les interactions des clients avec les chatbots. Dans l'industrie automobile, il est utilisé pour naviguer dans les véhicules autonomes et trouver des défauts de qualité dans la fabrication. Et dans l'industrie du sport, cela change la façon dont le jeu est joué avec un coaching en temps réel et des informations d'entraînement. Imaginez pouvoir modéliser les mouvements de vos adversaires ou déterminer comment positionner votre équipe à l'aide de modèles d'apprentissage profond. Vous pouvez découvrir comment les Seahawks de Seattle utilisent l'apprentissage profond pour éclairer la stratégie de jeu et accélérer la prise de décision dans cet article.

Dans cet article, nous partageons un exemple qui a touché une corde sensible avec les fans de football de notre équipe. Nous démontrons un modèle de détection d'objection qui identifie les joueurs à partir d'une image à l'aide d'un modèle de détecteur à coup unique pré-entraîné du zoo modèle DJL. Vous pouvez exécuter cet exemple sous Linux et macOS.

Pour utiliser DJL avec un projet d'application, créez un projet Gradle avec IntelliJ IDEA et ajoutez ce qui suit à votre configuration build.gradle.

AWS

Remarque: les dépendances d'exécution pour MXNet sont différentes pour les environnements Linux et macOS. Reportez-vous à la  documentation GitHub .

Nous utilisons cette image de football pour la détection.

AWS

Nous exécutons la prédiction avec le bloc de code partagé ci-dessous. Ce code charge un modèle SSD à partir du modèle-zoo, crée un  Predictor modèle à partir du modèle et utilise la  predict fonction pour identifier les objets de l'image. Une fonction utilitaire d'assistance établit ensuite des cadres de délimitation autour des objets détectés.

AWS

Ce code identifie les trois joueurs de l'image et enregistre le résultat sous ssd.png dans le répertoire de travail.

AWS

Ce code et cette bibliothèque peuvent être facilement adaptés pour tester et exécuter d'autres modèles de model-zoo. Mais le plaisir ne s'arrête pas là! Vous pouvez utiliser le modèle de réponse aux questions pour former votre propre assistant de texte ou le modèle de classification d'images pour identifier les objets sur l'étagère d'épicerie et bien d'autres. Veuillez visiter notre dépôt Github pour plus d'exemples.

Dans cet article, nous avons présenté DJL, notre humble effort pour offrir aux utilisateurs de Java la dernière et la meilleure expérience de développement d'apprentissage en profondeur. Nous avons démontré comment DJL peut détecter des objets à partir d'images en quelques minutes avec notre modèle pré-entraîné. Nous fournissons de nombreux autres exemples et de la documentation supplémentaire sur le référentiel DJL GitHub.

Nous saluons la participation de la communauté à notre voyage. Rendez-vous sur notre référentiel Github et rejoignez notre chaîne Slack pour commencer.