⇨ Parte 1
⇨ Parte 2
Bem, descansou e é o suficiente. Bem-vindo de volta!
Na série anterior, você e eu coletamos dados e treinamos nosso primeiro modelo.
Horrorizados com os resultados, eles treinaram uma dúzia a mais.
É hora de mostrar nossa criação ao mundo!
Modelo de Exportação
Para começar, salvaremos novamente o modelo do gerador em um formato adequado, para que não tenhamos que arrastar as declarações de classe para a hospedagem.
Crie um arquivo pequeno com a extensão * .py e copie o código abaixo do spoiler abaixo.
Seja jit.py:
O código a ser copiado sem pensar substituindo path, output_path por seu próprio Substitua as variáveis por suas próprias:
- path - o caminho para a iteração do modelo que você gosta.
Precisamos de um arquivo * G_A.pth - gerador de fotos -> história em quadrinhos. - output_path - o nome do arquivo do modelo exportado, pode ser qualquer coisa com a extensão * .jit, o principal é não esquecer onde o salvamos.
Não é necessário exportar o gerador da última era do treinamento, pegar aquele cujos resultados você mais gosta.
Em seguida, vá para o console, vá para a pasta com o nosso arquivo e escreva:
python jit.py
Voila! O modelo está pronto para se familiarizar com o mundo exterior.
Mais informações sobre tocha jitDocumentação: https://pytorch.org/docs/stable/jit.html
Em resumo, exportar para jit permite serializar o modelo e não arrastar o ambiente python junto com ele, todas as dependências e módulos externos que ele poderia usar. Exceto a tocha, é claro.
Embora o hospedemos em um ambiente python, os modelos jit podem ser usados em aplicativos independentes.
Escolha de hospedagem
Serei muito franco e imediatamente admito: meu entusiasta interno de aprendizado profundo morreu em algum lugar na segunda hora de explorar as possibilidades de hospedagem com suporte à GPU. Portanto, se alguém me disser hospedagem barata de GPU sem servidor, ficarei mais do que agradecido.
Não planejava pagar por um servidor completo para minhas experiências, portanto, estava procurando apenas soluções sem servidor.
Depois de rastejantes excruciantes nos planos tarifários de várias páginas do Google e da Amazon, minha escolha caiu em algoritmia.com
Existem várias razões:
O Web IDE é ideal para manequins, embora seja muito lento, porque você precisa aguardar a conclusão da compilação para verificação. Fora deste tutorial, eu recomendaria testar tudo localmente, pois a maioria dos erros ocorre no estágio de download e salvamento de arquivos.
O número mínimo de opções - é difícil morrer de velhice prematura, não tendo lido a lista de opções até o fim.
Bem, o último argumento - durante quase meio ano de experimentos, eu ainda não gastei um saldo inicial gratuito.
Embora agora, ao registrar uma conta pessoal, eles dêem menos do que no verão passado, isso ainda deve ser suficiente por um tempo e certamente para todos os nossos experimentos. No final do mês, mais empréstimos estão sendo depositados, o que mais de uma vez me salvou de uma potencial ruína.
Dos pontos negativos, vale ressaltar que as placas de vídeo existem apenas o antigo Tesla K80 com 12GB de RAM, o que impõe restrições correspondentes. De qualquer forma, até chegarmos à produção, já entenderemos o que precisamos do servidor.
Implantar modelos
Bem, para a batalha!
Registo
Vamos para https://algorithmia.com/signup e nos registramos. Não sei se faz diferença qual tipo de profissão / conta escolher, mas se você encontrar uma combinação de ouro que ofereça o máximo de créditos, informe-me nos comentários!
Download do modelo
Após o registro, entraremos em seu perfil.
Precisamos criar pastas para o modelo e as imagens que ele irá gerar.
Para fazer isso, selecione Fontes de dados no menu à esquerda.
Clique em Nova fonte de dados -> Coleta de dados hospedados
Vamos nomear a pasta "Meus modelos".
Como resultado, devemos ser transferidos para uma página com uma lista de nossas pastas.
Crie outra pasta: Nova coleção -> “photo2comics_out”
É hora de baixar o nosso modelo recém-exportado!
Vá para a pasta Meus modelos e arraste o arquivo de modelo para o navegador ou selecione Upload de arquivos no menu.
Agora copie o link para o nosso modelo, será útil para nós abaixo. Para fazer isso, clique nas reticências à direita do nome do arquivo.
Os dados terminaram, vá para o próprio algoritmo.
Algoritmo
Retornamos ao perfil clicando em Início no menu à esquerda.
Em seguida, clique em Criar novo -> Algoritmo e selecione o nome do nosso algoritmo. Nós preenchemos as opções restantes, como na figura abaixo.
Clique em Criar novo algoritmo e selecione WebIDE na janela que aparece.
Se você acidentalmente fechou o pop-up, é possível abrir o código-fonte clicando em Código-fonte no menu do nosso algoritmo.
Removemos o código do modelo e inserimos o nosso:
Um pouco mais de código para cópias ainda mais imprudentes 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ão se esqueça de inserir um link para o modelo baixado. Nós o copiamos na seção anterior ao carregar o modelo.
Enquanto estiver no WebIDE, clique em DEPENDENCIES no canto superior direito e substitua o texto por uma lista de nossas dependências:
algorithmia>=1.0.0,<2.0 opencv-python six torch==1.3.0 torchvision numpy
A versão da tocha deve ser a mesma ou mais recente que aquela em que salvamos o modelo. Caso contrário, pode haver erros ao importar o modelo jit.
Clique em SALVAR, CONSTRUIR e aguarde a conclusão da compilação. Assim que uma mensagem sobre uma compilação bem-sucedida aparecer no console abaixo, podemos verificar o desempenho do modelo enviando uma solicitação de teste ao console:
{"in":"https://cdn3.sportngin.com/attachments/photo/9226/3971/JABC-9u_medium.JPG", "out":"data://username/photo2comics_out/test.jpg", "size":512}
Onde {nomedeusuário} é o seu nome de usuário. Se tudo correu bem, “Success” aparecerá no console e a imagem gerada aparecerá na pasta que especificamos (neste caso, photo2comics_out).
Sumário
Parabéns, adiamos barata e com raiva nosso humilde modelo!
Na próxima edição, faremos amizade com o modelo de bot de telegrama e, finalmente, lançaremos tudo isso.
Se você não pode esperar para experimentar o modelo, sempre pode ler a documentação oficial: https://algorithmia.com/developers/api/
Bem, para passar o tempo até o próximo artigo, você pode cutucar alguns bots, modelos para os quais eu postei no Algoritmo:
@ selfie2animebot - Transforma uma selfie em um anime
@pimpmyresbot - aumenta a resolução x2 (máximo para 1400x1400)
@photozoombot - Cria vídeo com zoom 3D a partir de uma foto
@ photo2comicsbot - Na verdade, o herói da ocasião
Não se esqueça de compartilhar os resultados, idéias e problemas encontrados nos comentários.
Isso é tudo por hoje. Até breve!