⇨ Parte 1
⇨ Parte 2
Bueno, descansado y eso es suficiente. Bienvenido de nuevo!
En la serie anterior, usted y yo recopilamos datos y formamos a nuestro primer modelo.
Luego, horrorizados por los resultados, entrenaron a una docena más.
¡Es hora de mostrar nuestra creación al mundo!
Modelo de exportación
Para comenzar, volveremos a guardar el modelo del generador en un formato adecuado para que no tengamos que arrastrar las declaraciones de clase al alojamiento.
Cree un pequeño archivo con la extensión * .py y copie el código desde debajo del spoiler a continuación.
Deja que sea jit.py:
El código que se copiará sin pensar reemplazando path, output_path con el suyo Reemplace las variables con las suyas propias:
- ruta : la ruta a la iteración del modelo que te gusta.
Necesitamos un archivo * G_A.pth - generador de fotos -> cómic. - output_path : el nombre del archivo para el modelo exportado, puede ser cualquier cosa con la extensión * .jit, lo principal es no olvidar dónde lo guardamos.
No es necesario exportar el generador de la última era de entrenamiento, tome aquel cuyos resultados le gusten más.
Luego, vaya a la consola, vaya a la carpeta con nuestro archivo y escriba:
python jit.py
Voila! El modelo está listo para familiarizarse con el mundo exterior.
Más información sobre antorcha jitDocumentación: https://pytorch.org/docs/stable/jit.html
En resumen, exportar a jit le permite serializar el modelo y no arrastrar el entorno de Python junto con él, todas las dependencias y módulos externos que podría usar. Excepto la antorcha, por supuesto.
Aunque lo alojaremos en un entorno python, los modelos jit se pueden usar en aplicaciones independientes.
Elección de alojamiento
Seré muy franco e inmediatamente admitiré: mi entusiasta interno del aprendizaje profundo murió en algún lugar en la segunda hora de explorar las posibilidades de hospedaje con soporte de GPU. Entonces, si alguien me dice un alojamiento económico de GPU sin servidor, estaré más que agradecido.
No planeaba pagar un servidor completo para mis experimentos, por lo tanto, solo estaba buscando soluciones sin servidor.
Después de terribles escalofríos en los planes de tarifas de varias páginas de Google y Amazon, mi elección recayó en algoritmia.com
Hay varias razones:
Web IDE es ideal para tontos, aunque terriblemente lento, porque debe esperar a que se complete la compilación para la verificación. Fuera de este tutorial, recomendaría probar todo localmente, ya que la mayoría de los errores ocurren en la etapa de descarga y guardado de archivos.
El número mínimo de opciones : es difícil morir de vejez prematura, sin haber leído la lista de opciones hasta el final.
Bueno, el último argumento : durante casi medio año de experimentos, todavía no he gastado un saldo inicial gratuito.
Aunque ahora al registrar una cuenta personal dan menos que el verano pasado, esto debería ser suficiente por un tiempo, y ciertamente para todos nuestros experimentos. Al final del mes, se otorgan más préstamos, lo que más de una vez me salvó de una posible ruina.
De las desventajas, vale la pena señalar que las tarjetas de video solo son las antiguas Tesla K80 con 12 GB de RAM, lo que impone las restricciones correspondientes. En cualquier caso, hasta que lleguemos a producción, ya entenderemos lo que necesitamos del servidor.
Implementar modelos
Bueno, a la batalla!
Registro
Vamos a https://algorithmia.com/signup y nos registramos. No estoy seguro de que haya una diferencia en qué profesión / tipo de cuenta elegir, pero si encuentra un combo de oro que le otorgue el máximo de créditos, ¡asegúrese de informarme en los comentarios!
Descargar modelo
Después del registro, estaremos en su perfil.
Necesitamos crear carpetas para el modelo y las imágenes que generará.
Para hacer esto, seleccione Orígenes de datos en el menú de la izquierda.
Haga clic en Nueva fuente de datos -> Recopilación de datos alojados
Pongamos nombre a la carpeta "Mis modelos".
Como resultado, deberíamos ser transferidos a una página con una lista de nuestras carpetas.
Cree otra carpeta: Nueva colección -> "photo2comics_out"
¡Es hora de descargar nuestro modelo recién exportado!
Vaya a la carpeta Mis modelos y arrastre el archivo del modelo al navegador, o seleccione Cargar archivos en el menú.
Ahora copie el enlace a nuestro modelo, nos será útil a continuación. Para hacer esto, haga clic en los puntos suspensivos a la derecha del nombre del archivo.
Los datos han terminado, vaya al algoritmo mismo.
Algoritmo
Regresamos al perfil haciendo clic en Inicio en el menú de la izquierda.
Luego, haga clic en Crear nuevo -> Algoritmo y seleccione el nombre de nuestro algoritmo. Completamos las opciones restantes como en la imagen a continuación.
Haga clic en Crear nuevo algoritmo y seleccione WebIDE en la ventana que aparece.
Si accidentalmente cerró la ventana emergente, puede abrir el código fuente haciendo clic en Código fuente en el menú de nuestro algoritmo.
Eliminamos el código de la plantilla e insertamos el nuestro:
Un poco más de código para una copia aún más irreflexiva 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()
No olvide insertar un enlace al modelo descargado. Lo copiamos en la sección anterior al cargar el modelo.
Mientras está en WebIDE, haga clic en DEPENDENCIAS en la esquina superior derecha y reemplace el texto con una lista de nuestras dependencias:
algorithmia>=1.0.0,<2.0 opencv-python six torch==1.3.0 torchvision numpy
La versión de la antorcha debe ser la misma o más nueva que la que guardamos el modelo. De lo contrario, puede haber errores al importar el modelo jit.
Haga clic en GUARDAR, CONSTRUIR y espere a que se complete la compilación. Tan pronto como aparezca un mensaje sobre una compilación exitosa en la consola a continuación, podemos verificar el rendimiento del modelo enviando una solicitud de prueba a la consola:
{"in":"https://cdn3.sportngin.com/attachments/photo/9226/3971/JABC-9u_medium.JPG", "out":"data://username/photo2comics_out/test.jpg", "size":512}
Donde {nombre de usuario} es tu nombre de usuario. Si todo salió bien, "Success" aparecerá en la consola, y la imagen generada aparecerá en la carpeta que especificamos (en este caso photo2comics_out).
Resumen
¡Felicitaciones, diferimos de manera barata y enojada nuestro humilde modelo!
En el próximo número, nos haremos amigos del modelo de bot de telegramas y, finalmente, lanzaremos todo esto.
Si no puede esperar para probar el modelo, siempre puede leer la documentación oficial: https://algorithmia.com/developers/api/
Bueno, para pasar el tiempo hasta el próximo artículo, puedes meter algunos bots, modelos para los que publiqué en el Algoritmo:
@ selfie2animebot - Convierte una selfie en un anime
@pimpmyresbot : aumenta la resolución x2 (máximo a 1400x1400)
@photozoombot - Crea un video con zoom 3D a partir de una foto
@ photo2comicsbot - En realidad, el héroe de la ocasión
No olvides compartir los resultados, ideas y problemas encontrados en los comentarios.
Eso es todo por hoy. Hasta pronto!