


Vous ne savez pas comment déployer des modèles d'apprentissage automatique ? 15 images vous emmènent dans le framework de déploiement TensorFlow !
Ouverture
Il y a quelques jours, je discutais avec un ami, Xiao Li, engagé dans le développement depuis 3 ans, et j'ai appris que son entreprise entreprenait un projet lié à l'apprentissage automatique. Récemment, il a reçu pour tâche de déployer le modèle d'apprentissage automatique formé. Cela inquiète Xiao Li. Il est impliqué dans le développement de l'apprentissage automatique depuis près de six mois. Il s'occupe principalement de la collecte de données, du nettoyage des données, de la création d'environnements, de la formation de modèles et de l'évaluation de modèles. .
J'ai donc mené des recherches scientifiques populaires sur le déploiement de modèles d'apprentissage automatique en me basant sur ma propre expérience. Comme le montre la figure 1, dans la programmation traditionnelle, nous transmettons des règles et des données au programme pour obtenir les réponses souhaitées. Mais pour l'apprentissage automatique, nous formons les règles à travers les réponses et les données. Cette règle est le modèle de l'apprentissage automatique.
Figure 1 La différence entre la programmation traditionnelle et l'apprentissage automatique
Le déploiement du modèle d'apprentissage automatique consiste à déployer cette règle (modèle) sur le terminal où l'apprentissage automatique doit être appliqué. Comme le montre la figure 2, le modèle entraîné par machine learning peut être compris comme une fonction, API ou SDK, et est déployé sur le terminal correspondant (la partie grise sur la figure). Après le déploiement, le terminal disposera des capacités données par le modèle. A ce moment, en saisissant de nouvelles données, les résultats prédits pourront être obtenus selon les règles (modèle).
Figure 2 Principe de déploiement du modèle d'apprentissage automatique
Cadre de déploiement d'apprentissage automatique TensorFlow
Xiao Li a dit qu'il avait compris après avoir écouté mon introduction et m'a expliqué la situation complète de déploiement de leur projet avec un grand intérêt S'il vous plaît dis-moi, je veux demander mon avis. Comme le montre la figure 3, ils souhaitent déployer un modèle de reconnaissance d'image côté IOS, Android, Raspberry Pi, navigateur Web et serveur.
Figure 3 Scénario de déploiement du modèle
Du scénario d'application de déploiement, il présente les caractéristiques d'être léger et multiplateforme. Le même modèle d'apprentissage automatique doit être déployé sur plusieurs plates-formes différentes, et chaque plate-forme dispose de capacités de stockage et de calcul différentes. Dans le même temps, la disponibilité, les performances, la sécurité et l'évolutivité du fonctionnement du modèle doivent être prises en compte, et une grande plate-forme relativement stable doit être utilisée. Je lui ai donc recommandé le framework de déploiement de machine learning de TensorFlow. Comme le montre la figure 4, le cadre de déploiement de TensorFlow fournit la prise en charge des composants pour différentes plates-formes. Parmi eux, Android, IOS et Raspberry Pi correspondent à TensorFlow Lite, qui est un framework de déploiement de modèles spécialement utilisé pour les terminaux mobiles. Le côté navigateur peut utiliser TensorFlow.js et le côté serveur peut utiliser TensorFlow Serving.
Figure 4 Cadre de déploiement du modèle d'apprentissage automatique TensorFlow
Fonctionnement réel de TensorFlow Lite
Xiao Li voulait en savoir plus sur le processus de déploiement spécifique. J'avais un projet en main qui utilisait le cadre de déploiement de TensorFlow. , alors montrez-lui le processus. Ce projet consiste à déployer le modèle « reconnaissance de chat et de chien » sur les téléphones Android. IOS, Android, Raspberry Pi et les navigateurs étant tous clients, leurs ressources informatiques ne peuvent être comparées à celles du serveur. En particulier, les applications mobiles présentent les caractéristiques de légèreté, de faible latence, de haute efficacité, de protection de la vie privée, d'économie d'énergie, etc., c'est pourquoi TensorFlow a spécialement conçu leur déploiement et utilise TensorFlow Lite pour les déployer.
Utiliser TensorFlow Lite pour déployer un modèle nécessite trois étapes :
- Utilisez TensorFlow pour entraîner le modèle.
- Convertir au format TensorFlow Lite.
- Utilisez l'interpréteur TensorFlow Lite pour charger et exécuter.
Dans la première étape, nous avons terminé la formation du modèle. La deuxième étape consiste à convertir le modèle généré en un format de modèle que TensorFlow Lite peut reconnaître et utiliser. Comme mentionné ci-dessus, lorsque le modèle est utilisé sur le terminal mobile, divers problèmes doivent être pris en compte, c'est pourquoi un format de fichier spécial doit être généré pour le terminal mobile. La troisième étape consiste à charger le fichier TensorFlow Lite converti dans l'interpréteur mobile et à l'exécuter.
Étant donné que nous nous concentrons sur le déploiement du modèle, la première étape de formation du modèle est temporairement ignorée, ce qui signifie que vous avez déjà entraîné le modèle. Pour la deuxième étape de conversion du modèle, veuillez vous référer à la figure 5. Le modèle TensorFlow sera converti en un fichier de modèle avec le suffixe « .tflite » via Converter, puis publié sur différentes plates-formes et traité via l'interpréteur sur chaque plate-forme. Expliquez et chargez.
Figure 5 Architecture de conversion de modèle TensorFlow Lite
Sauvegarde et conversion de modèle
L'architecture de TensorFlow Lite est présentée ci-dessus. Ici, vous devez enregistrer le modèle en tant que modèle TensorFlow et le convertir. Comme le montre la figure 6, nous appelons la méthode saving_model.save dans TensorFlow pour enregistrer le modèle (modèle entraîné) dans le répertoire spécifié.
Figure 6 Enregistrement du modèle TensorFlow
Après avoir enregistré le modèle, il est temps de convertir le modèle. Comme le montre la figure 7, appelez la méthode from_saved_model dans le package TFLiteConverter dans TensorFlow Lite pour générer le. converter (convertisseur de modèle), puis appelez la méthode convert dans le convertisseur pour convertir le modèle et enregistrer le fichier converti dans le répertoire spécifié.
Figure 7 Convertir au format de modèle tflite
Charger le modèle d'application
Étant donné que cet exemple concerne le déploiement de modèles du système Android, la dépendance de TensorFlow Lite doit être introduite dans Android. Comme le montre la figure 8, introduisez la dépendance de TensorFlow Lite et définissez noCompress sur "tflite" dans aaptOptions, ce qui signifie que les fichiers avec "tflite" ne seront pas compressés. Si la compression est définie, le système Android peut ne pas reconnaître les fichiers tflite.
Figure 8 Dépendances de TensorFlow Lite introduites dans le projet
Après avoir configuré les dépendances, copiez le fichier tflite converti dans le fichier d'actifs, comme indiqué dans la figure 9. Ce fichier sera chargé ultérieurement. qui effectuent l’apprentissage automatique.
Figure 9 Ajout du fichier tflite
Après avoir ajouté le fichier tflite, nous allons créer un classificateur Classifier pour classer les images "chat et chien". Comme le montre la figure 10, l'interpréteur est initialisé dans init dans Classifer, la méthode loadModuleFlie est appelée pour charger le fichier tflite et l'étiquette de classification (labelList) est spécifiée ici "cat dog".
Figure 10 Initialisation de l'interprète
Après avoir créé le classificateur, le modèle de classification du chat et du chien est utilisé pour identifier l'image. Autrement dit, dans la classe Classifier, comme le montre la figure 10, le paramètre d'entrée de la méthode convertBitmapToByteBuffer est bitmap. Il s'agit de l'image du chat et du chien que nous saisissons. Elle sera convertie dans cette méthode. dans la boucle for, convertissez les canaux vert et bleu, placez le résultat de la conversion dans un byteBuffer et renvoyez-le. La méthode recoginzeImage appelle convertBitmapToByteBuffer et utilise la méthode run de l'interpréteur pour effectuer un travail de reconnaissance d'image, c'est-à-dire utiliser un modèle d'apprentissage automatique pour identifier des images de chats et de chiens.
Figure 11 Reconnaître des images
Le processus de transformation graphique ci-dessus est trop abstrait, nous allons le rendre concret comme le montre la figure 12. L'image que nous saisissons est l'image 395*500 dans le coin supérieur gauche de l'image, qui convertira l'image dans imageView sous forme bitmap. Étant donné que notre entrée de modèle nécessite un format 224*224, une conversion est requise. Ensuite, les pixels sont placés dans un tableau ByteBuffer 224*224 et enregistrés, et enfin les pixels RVB (rouge, vert et bleu) sont normalisés (divisés par 255) en tant que paramètres d'entrée du modèle.
Figure 12 Le processus de conversion de l'image d'entrée
À ce stade, le chargement et l'application du modèle d'apprentissage automatique sont terminés. Bien entendu, les fichiers d'entrée et la mise en page sont également indispensables. Comme le montre la figure 13, nous stockons les images qui doivent être prédites (images de chat et de chien) dans le dossier dessinable. Créez ensuite le fichier Activity_image_classifier.xml sous la mise en page pour créer et stocker ImageView.
Figure 13 Fichiers d'image d'entrée et fichiers de mise en page
Enfin, créez une ImageClassifierActivity pour afficher des images et répondre aux événements qui identifient les images. Comme le montre la figure 14, liez l'événement onclick de chaque image dans la méthode initViews, puis appelez la méthode recoginzie Image dans la méthode onclick pour identifier l'image.
Figure 14 Effectuer une reconnaissance d'image en un clic
Jetons un coup d'œil à l'effet. Comme le montre la figure 15, lorsque l'on clique sur l'image correspondante, une invite « chien » s'affiche, indiquant le résultat de la prédiction.
Figure 15 Effet de démonstration
Revoir l'ensemble du processus n'est pas compliqué. Je résume le modèle de déploiement TensorFlow Lite en les étapes suivantes :
- Enregistrez le modèle d'apprentissage automatique.
- Convertissez le modèle au format tflite.
- Chargez le modèle au format tflite.
- Utilisez l'interpréteur pour charger le modèle.
- Résultats de prédiction des paramètres d'entrée.
Les étudiants qui souhaitent approfondir leurs compétences en matière de déploiement de modèles TensorFlow peuvent suivre les cours officiels de TensorFlow, créer un compte sur le MOOC de l'université chinoise et apprendre gratuitement : https://www.php cn. /link/1f5f6ad95cc908a20bb7e30ee28a5958
Il existe également des explications de déploiement en ligne et des questions-réponses fournies par des experts en développement de Google, qui sont très bonnes. Je recommande aux étudiants qui souhaitent avoir une compréhension préliminaire des fonctions de déploiement de TensorFlow d'y prêter attention. https://www.php.cn/link/e046ede63264b10130007afca077877f
Fin
Après avoir écouté mon explication du déploiement du modèle d'apprentissage automatique et compris le processus de déploiement de TensorFlow, Xiao Li était encore plus impatient d'essayer le déploiement pratique. Je pense que le processus de déploiement utilisant TensorFlow est logiquement clair, la méthode est simple et facile à mettre en œuvre, et il est facile pour les développeurs ayant 3 à 5 ans d'expérience de démarrer. De plus, TensorFlow propose officiellement le « Cours pratique d'introduction à TensorFlow », qui convient aux novices n'ayant aucune base en apprentissage automatique : https://www.php.cn/link/bf2fe6582ed9ead9161a3d6f6b1d6858
Introduction à l'auteur
Cui Hao, rédacteur en chef de la communauté 51CTO, architecte senior, a 20 ans d'expérience en architecture. Il a déjà été expert technique chez HP, a participé à plusieurs projets d'apprentissage automatique et a écrit et traduit plus de 20 articles techniques populaires sur l'apprentissage automatique, le PNL, etc. Auteur de "Principes et pratique de l'architecture distribuée".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Ce site a rapporté le 27 juin que Jianying est un logiciel de montage vidéo développé par FaceMeng Technology, une filiale de ByteDance. Il s'appuie sur la plateforme Douyin et produit essentiellement du contenu vidéo court pour les utilisateurs de la plateforme. Il est compatible avec iOS, Android et. Windows, MacOS et autres systèmes d'exploitation. Jianying a officiellement annoncé la mise à niveau de son système d'adhésion et a lancé un nouveau SVIP, qui comprend une variété de technologies noires d'IA, telles que la traduction intelligente, la mise en évidence intelligente, l'emballage intelligent, la synthèse humaine numérique, etc. En termes de prix, les frais mensuels pour le clipping SVIP sont de 79 yuans, les frais annuels sont de 599 yuans (attention sur ce site : équivalent à 49,9 yuans par mois), l'abonnement mensuel continu est de 59 yuans par mois et l'abonnement annuel continu est de 59 yuans par mois. est de 499 yuans par an (équivalent à 41,6 yuans par mois) . En outre, le responsable de Cut a également déclaré que afin d'améliorer l'expérience utilisateur, ceux qui se sont abonnés au VIP d'origine

Améliorez la productivité, l’efficacité et la précision des développeurs en intégrant une génération et une mémoire sémantique améliorées par la récupération dans les assistants de codage IA. Traduit de EnhancingAICodingAssistantswithContextUsingRAGandSEM-RAG, auteur JanakiramMSV. Bien que les assistants de programmation d'IA de base soient naturellement utiles, ils ne parviennent souvent pas à fournir les suggestions de code les plus pertinentes et les plus correctes, car ils s'appuient sur une compréhension générale du langage logiciel et des modèles d'écriture de logiciels les plus courants. Le code généré par ces assistants de codage est adapté à la résolution des problèmes qu’ils sont chargés de résoudre, mais n’est souvent pas conforme aux normes, conventions et styles de codage des équipes individuelles. Cela aboutit souvent à des suggestions qui doivent être modifiées ou affinées pour que le code soit accepté dans l'application.

Pour en savoir plus sur l'AIGC, veuillez visiter : 51CTOAI.x Community https://www.51cto.com/aigc/Translator|Jingyan Reviewer|Chonglou est différent de la banque de questions traditionnelle que l'on peut voir partout sur Internet. nécessite de sortir des sentiers battus. Les grands modèles linguistiques (LLM) sont de plus en plus importants dans les domaines de la science des données, de l'intelligence artificielle générative (GenAI) et de l'intelligence artificielle. Ces algorithmes complexes améliorent les compétences humaines et stimulent l’efficacité et l’innovation dans de nombreux secteurs, devenant ainsi la clé permettant aux entreprises de rester compétitives. LLM a un large éventail d'applications. Il peut être utilisé dans des domaines tels que le traitement du langage naturel, la génération de texte, la reconnaissance vocale et les systèmes de recommandation. En apprenant de grandes quantités de données, LLM est capable de générer du texte

Les grands modèles linguistiques (LLM) sont formés sur d'énormes bases de données textuelles, où ils acquièrent de grandes quantités de connaissances du monde réel. Ces connaissances sont intégrées à leurs paramètres et peuvent ensuite être utilisées en cas de besoin. La connaissance de ces modèles est « réifiée » en fin de formation. À la fin de la pré-formation, le modèle arrête effectivement d’apprendre. Alignez ou affinez le modèle pour apprendre à exploiter ces connaissances et répondre plus naturellement aux questions des utilisateurs. Mais parfois, la connaissance du modèle ne suffit pas, et bien que le modèle puisse accéder à du contenu externe via RAG, il est considéré comme bénéfique de l'adapter à de nouveaux domaines grâce à un réglage fin. Ce réglage fin est effectué à l'aide de la contribution d'annotateurs humains ou d'autres créations LLM, où le modèle rencontre des connaissances supplémentaires du monde réel et les intègre.

L'apprentissage automatique est une branche importante de l'intelligence artificielle qui donne aux ordinateurs la possibilité d'apprendre à partir de données et d'améliorer leurs capacités sans être explicitement programmés. L'apprentissage automatique a un large éventail d'applications dans divers domaines, de la reconnaissance d'images et du traitement du langage naturel aux systèmes de recommandation et à la détection des fraudes, et il change notre façon de vivre. Il existe de nombreuses méthodes et théories différentes dans le domaine de l'apprentissage automatique, parmi lesquelles les cinq méthodes les plus influentes sont appelées les « Cinq écoles d'apprentissage automatique ». Les cinq grandes écoles sont l’école symbolique, l’école connexionniste, l’école évolutionniste, l’école bayésienne et l’école analogique. 1. Le symbolisme, également connu sous le nom de symbolisme, met l'accent sur l'utilisation de symboles pour le raisonnement logique et l'expression des connaissances. Cette école de pensée estime que l'apprentissage est un processus de déduction inversée, à travers les connaissances existantes.

L'ensemble de données ScienceAI Question Answering (QA) joue un rôle essentiel dans la promotion de la recherche sur le traitement du langage naturel (NLP). Des ensembles de données d'assurance qualité de haute qualité peuvent non seulement être utilisés pour affiner les modèles, mais également évaluer efficacement les capacités des grands modèles linguistiques (LLM), en particulier la capacité à comprendre et à raisonner sur les connaissances scientifiques. Bien qu’il existe actuellement de nombreux ensembles de données scientifiques d’assurance qualité couvrant la médecine, la chimie, la biologie et d’autres domaines, ces ensembles de données présentent encore certaines lacunes. Premièrement, le formulaire de données est relativement simple, et la plupart sont des questions à choix multiples. Elles sont faciles à évaluer, mais limitent la plage de sélection des réponses du modèle et ne peuvent pas tester pleinement la capacité du modèle à répondre aux questions scientifiques. En revanche, les questions et réponses ouvertes

Selon les informations de ce site le 1er août, SK Hynix a publié un article de blog aujourd'hui (1er août), annonçant sa participation au Global Semiconductor Memory Summit FMS2024 qui se tiendra à Santa Clara, Californie, États-Unis, du 6 au 8 août, présentant de nombreuses nouvelles technologies de produit. Introduction au Future Memory and Storage Summit (FutureMemoryandStorage), anciennement Flash Memory Summit (FlashMemorySummit) principalement destiné aux fournisseurs de NAND, dans le contexte de l'attention croissante portée à la technologie de l'intelligence artificielle, cette année a été rebaptisée Future Memory and Storage Summit (FutureMemoryandStorage) pour invitez les fournisseurs de DRAM et de stockage et bien d’autres joueurs. Nouveau produit SK hynix lancé l'année dernière

Editeur | KX Dans le domaine de la recherche et du développement de médicaments, il est crucial de prédire avec précision et efficacité l'affinité de liaison des protéines et des ligands pour le criblage et l'optimisation des médicaments. Cependant, les études actuelles ne prennent pas en compte le rôle important des informations sur la surface moléculaire dans les interactions protéine-ligand. Sur cette base, des chercheurs de l'Université de Xiamen ont proposé un nouveau cadre d'extraction de caractéristiques multimodales (MFE), qui combine pour la première fois des informations sur la surface des protéines, la structure et la séquence 3D, et utilise un mécanisme d'attention croisée pour comparer différentes modalités. alignement. Les résultats expérimentaux démontrent que cette méthode atteint des performances de pointe dans la prédiction des affinités de liaison protéine-ligand. De plus, les études d’ablation démontrent l’efficacité et la nécessité des informations sur la surface des protéines et de l’alignement des caractéristiques multimodales dans ce cadre. Les recherches connexes commencent par "S
