⇨ Partie 1
⇨ Partie 2
Eh bien, reposé et ça suffit. Bienvenue à nouveau!
Dans la série précédente, vous et moi avons collecté des données et formé notre premier modèle.
Puis, horrifiés par les résultats, ils en ont entraîné une douzaine de plus.
Il est temps de montrer notre création au monde!
Exporter le modèle
Pour commencer, nous ré-enregistrerons le modèle du générateur dans un format approprié afin de ne pas avoir à faire glisser les déclarations de classe vers l'hébergement.
Créez un petit fichier avec l'extension * .py et copiez le code sous le spoiler ci-dessous.
Que ce soit jit.py:
Le code à copier sans réfléchir en remplaçant path, output_path par le vôtre Remplacez les variables par les vôtres:
- chemin - le chemin vers l'itération de modèle que vous aimez.
Nous avons besoin d'un fichier * G_A.pth - générateur de photos -> bande dessinée. - chemin_sortie - le nom du fichier pour le modèle exporté, il peut être n'importe quoi avec l'extension * .jit, l'essentiel est de ne pas oublier où nous l'avons enregistré.
Il n'est pas nécessaire d'exporter le générateur de la dernière ère de formation, prenez celui dont vous aimez le plus les résultats.
Ensuite, allez dans la console, allez dans le dossier avec notre fichier et écrivez:
python jit.py
Voila! Le modèle est prêt à se familiariser avec le monde extérieur.
Plus d'informations sur torch jitDocumentation: https://pytorch.org/docs/stable/jit.html
En bref, l'exportation vers jit vous permet de sérialiser le modèle et de ne pas faire glisser l'environnement python avec lui, toutes les dépendances et modules externes qu'il pourrait utiliser. Sauf torche, bien sûr.
Bien que nous l'hébergerons dans un environnement python, les modèles jit peuvent être utilisés dans des applications autonomes.
Choix d'hébergement
Je serai très franc et admettrai immédiatement: mon passionné de deep learning interne est décédé quelque part dans la deuxième heure de l'exploration des possibilités d'hébergement avec le support du GPU. Donc, si quelqu'un me dit un hébergement GPU sans serveur peu coûteux, je serai plus que reconnaissant.
Je n'avais pas prévu de payer pour un serveur à part entière pour mes expériences, donc je ne cherchais que des solutions sans serveur.
Après une atroce rampe sur les plans tarifaires multi-pages de Google et d'Amazon, mon choix s'est porté sur algorithmia.com
Il y a plusieurs raisons:
Web IDE est idéal pour les nuls, bien que terriblement lent, car vous devez attendre la fin de la construction pour la vérification. En dehors de ce tutoriel, je recommanderais de tout tester localement, car la plupart des erreurs se produisent au stade du téléchargement et de l'enregistrement des fichiers.
Le nombre minimum d'options - il est difficile de mourir d'une vieillesse prématurée, sans avoir lu la liste des options jusqu'au bout.
Eh bien, le dernier argument - pendant près de six mois d'expériences, je n'ai toujours pas dépensé un solde de départ gratuit.
Bien que maintenant, lors de l'enregistrement d'un compte personnel, ils donnent moins que l'été dernier, cela devrait encore suffire pendant un certain temps, et certainement pour toutes nos expériences. À la fin du mois, plus de prêts sont accordés, ce qui m'a plus d'une fois sauvé d'une ruine potentielle.
Parmi les inconvénients, il convient de noter que les cartes vidéo ne sont que l'ancienne Tesla K80 avec 12 Go de RAM, ce qui impose des restrictions correspondantes. Dans tous les cas, jusqu'à ce que nous arrivions à la production, nous comprendrons déjà ce dont nous avons besoin du serveur.
Déployer des modèles
Eh bien, à la bataille!
Inscription
Nous allons sur https://algorithmia.com/signup et nous enregistrons. Je ne suis pas sûr qu'il y ait une différence quant à la profession \ type de compte à choisir, mais si vous trouvez un combo en or qui donne un maximum de crédits, assurez-vous de me le faire savoir dans les commentaires!
Télécharger le modèle
Après l'inscription, nous serons dans votre profil.
Nous devons créer des dossiers pour le modèle et les images qu'il va générer.
Pour ce faire, sélectionnez Sources de données dans le menu de gauche.
Cliquez sur Nouvelle source de données -> Collecte de données hébergée
Nommons le dossier «Mes modèles».
En conséquence, nous devrions être transférés sur une page avec une liste de nos dossiers.
Créez un autre dossier: Nouvelle collection -> «photo2comics_out»
Il est temps de télécharger notre modèle fraîchement exporté!
Accédez au dossier Mes modèles et faites glisser le fichier de modèle vers le navigateur, ou sélectionnez Télécharger des fichiers dans le menu.
Copiez maintenant le lien vers notre modèle, il nous sera utile ci-dessous. Pour ce faire, cliquez sur les points de suspension à droite du nom de fichier.
Les données sont terminées, allez à l'algorithme lui-même.
Algorithme
Nous revenons au profil en cliquant sur Accueil dans le menu de gauche.
Ensuite, cliquez sur Créer nouveau -> Algorithme et sélectionnez le nom de notre algorithme. Nous remplissons les options restantes comme dans l'image ci-dessous.
Cliquez sur Créer un nouvel algorithme et sélectionnez WebIDE dans la fenêtre qui apparaît.
Si vous avez accidentellement fermé le popup, vous pouvez ouvrir le code source en cliquant sur Code source dans le menu de notre algorithme.
Nous supprimons le code du modèle et insérons le nôtre:
Un peu plus de code pour une copie encore plus irréfléchie import Algorithmia import torch import torchvision import torchvision.transforms as transforms import cv2 from torch import * import uuid import gc import requests import numpy as np client = Algorithmia.client()
N'oubliez pas d'insérer un lien vers le modèle téléchargé. Nous l'avons copié dans la section précédente lors du chargement du modèle.
Dans WebIDE, cliquez sur DÉPENDANCES en haut à droite et remplacez le texte par une liste de nos dépendances:
algorithmia>=1.0.0,<2.0 opencv-python six torch==1.3.0 torchvision numpy
La version de la torche doit être identique ou plus récente que celle sur laquelle nous avons enregistré le modèle. Sinon, il peut y avoir des erreurs lors de l'importation du modèle jit.
Cliquez sur ENREGISTRER, CONSTRUIRE et attendez la fin de la génération. Dès qu'un message sur une construction réussie apparaît dans la console ci-dessous, nous pouvons vérifier les performances du modèle en envoyant une demande de test à la console:
{"in":"https://cdn3.sportngin.com/attachments/photo/9226/3971/JABC-9u_medium.JPG", "out":"data://username/photo2comics_out/test.jpg", "size":512}
Où {nom d'utilisateur} est votre nom d'utilisateur. Si tout s'est bien passé, «Success» apparaîtra dans la console, et l'image générée apparaîtra dans le dossier que nous avons spécifié (dans ce cas photo2comics_out).
Résumé
Félicitations, nous avons reporté à bon marché et avec colère notre humble modèle!
Dans le prochain numéro, nous nous lierons d'amitié avec le modèle de bot de télégramme et, enfin, nous publierons tout cela.
Si vous ne pouvez pas attendre pour essayer le modèle, vous pouvez toujours lire la documentation officielle: https://algorithmia.com/developers/api/
Eh bien, afin de passer le temps jusqu'au prochain article, vous pouvez pousser quelques bots, modèles pour lesquels j'ai posté sur l'algorithme:
@ selfie2animebot - Transforme un selfie en un anime
@pimpmyresbot - Augmente la résolution x2 (maximum à 1400x1400)
@photozoombot - Crée une vidéo zoom 3D à partir d'une photo
@ photo2comicsbot - En fait, le héros de l' occasion
N'oubliez pas de partager les résultats, les idées et les problèmes rencontrés dans les commentaires.
C'est tout pour aujourd'hui. A très bientôt!