Neste tutorial, mostrarei as etapas e mostrarei como instalei o Ubuntu no Windows 10 (WSL), configurei um ambiente para experimentar o PULSE , carreguei outra foto original e obtive um bom resultado.
Morph animação e vídeo tutorial - mais.
O que nos foi dado
O Face-Depixelizer é um frontend para trabalhar com o PULSE.
PULSE é um mecanismo baseado na rede neural StyleGAN. Seu significado é que restaura imagens do rosto de uma pessoa a partir de uma fotografia distorcida. E, a propósito, este é um trabalho científico para CFV .
O StyleGAN é uma rede neural adversária generativa da NVidia que gera uma face aleatória de uma pessoa inexistente (na verdade, será engraçado se essa pessoa já existir).
PULSE , finalmente, nos dirá aproximadamente como é a mesma pessoa que piscou nesta foto!
Assumindo o PULSO
Eu me perguntava o que havia sob o capô do PULSE e, em geral, como ele poderia ser iniciado localmente.
Por interesse, tendo examinado na diagonal um artigo científico, comecei a pensar em como começar e como estabelecer tudo (apesar de nunca ter me definido uma "rede neural").
E comecei dizendo que, assim que possível, antes que o github caísse (se é que você me entende), mudei para o projeto PULSE . Onde o autor indicou esta opção de instalação: anaconda e python. Essa. em qualquer caso, são necessários pacotes específicos da plataforma (bibliotecas). Eu sou mais usuário do Windows que Linux. Mas, mesmo assim, gostaria de rodar sem edição e seleção tediosa de bibliotecas. E sem o Linux, isso não pode ser feito.
Algum tempo atrás, alguns especialistas em TI estavam falando sobre Linux no Windows. E eu vou te dizer isso, para mim - em vão. A coisa é conveniente, embora ainda não tenha sido concluída.
O WSL , o Windows Subsystem para Linux, permite que os desenvolvedores executem o ambiente GNU / Linux, incluindo a maioria dos programas, utilitários e aplicativos de linha de comando, diretamente no Windows sem nenhuma modificação, eliminando a necessidade de uma máquina virtual separada.
Essa. este é o acesso à linha de comando do linux a partir do windows. Um terminal com Linux é tão fácil de iniciar quanto o cmd. Convenientemente.
Vamos começar
Para trabalhar com o terminal, aqui e no vídeo eu usarei o Terminal do Windows (da Windows Store).
Em resumo
Verificando os requisitos
- Placa de vídeo NVidia com suporte para CUDA (a rede neural StyleGAN usa CUDA). Lista de placas de vídeo suportadas aqui
- NVidia CUDA WSL2 ( , ).
- Windows 10 version 2004 build 20150 ( Windows Insider Program ), .
- WSL2 (4.19.121 ; Windows) linux .
- Ubuntu 18.04 WSL2 Windows Store.
Ubuntu
- cmake
- unzip,
- NVidia CUDA Toolkit.
CUDA
Baixe e instale o anaconda.
Instalar PULSE
- Fazendo download no github PULSE
- Editando pulse.yml:
- Adicionar canais anaconda, conda-forge
- Removendo referências a montagens específicas
- Instale o ambiente PULSE usando o arquivo editado
- Verificando o desempenho do Pytorch e do CUDA Toolkit no Python.
Experimentando
- Usando o pip update jupyter notebook para a versão mais recente
- Ajustando a imagem (na edição eles escrevem que PULSE funciona com uma imagem quadrada de 1024 * 1024 e três canais RGB, ou seja, sem transparência)
- Aumentamos / diminuímos o número de etapas e o erro
- ...
- LUCRO!
Acima está uma animação de metamorfose criada a partir de imagens intermediárias.
Como diz o ditado: "é melhor ver uma vez do que ouvir cem vezes". O vídeo mostra todas as etapas, começando com a atualização do WSL2 e instalando o Ubuntu.
E agora…
Mais detalhes
Exigências
Mais uma vez repetirei os requisitos (... e após a centésima edição, lembrarei de Fowler pela centésima vez):
- Windows 10 versão 2004 build 20150 ou superior
- WSL2 (versão 4.19.121 e superior)
- O Ubuntu 18.04 para WSL2 é a própria distribuição da Windows Store. Instalado após o avanço de todas as atualizações do Windows 10 Insider , incl. WSL2
- NVidia Driver WSL é uma versão experimental de drivers com suporte para a nova versão do WSL2. Requer consentimento para participar do Programa Experimental da NVidia. Mas nem todo cartão funcionará .
Preparação do SO
Windows 10
O objetivo : Windows 10 versão 2004, compilação 20150 e anterior ao
pré - tratamento :
- Iniciando atualizações
- Em seguida, usando o aplicativo
winver
, verificamos a versão atual do Windows - Se sua versão do Windows for inferior à versão 2004 do Windows 10, compilação 20150, você precisará seguir as etapas abaixo
- E se estiver tudo bem, parabéns, você não precisa ingressar no Windows Insider Program! Sinta-se livre para avançar para a próxima etapa!
O que fazemos :
- Como entrar no programa Windows Insider
- Além disso, nos parâmetros do sistema "Atualização e segurança":
- Guia Insider Program (se estiver em branco, consulte a seção Solução de problemas abaixo):
- Opções de avaliação: acesso antecipado
- Clique em "Iniciar".
- Guia Windows Update:
- No "Avançado", certifique-se de permitir "Ao atualizar para receber atualizações de outros produtos da Microsoft" (isto é para instalar o WSL2 4.19.121 e superior)
- Estamos atualizando.
- Guia Insider Program (se estiver em branco, consulte a seção Solução de problemas abaixo):
Verificação : lançamento
winver
. Na caixa de diálogo exibida, veja a versão.
Driver NVidia CUDA WSL
Objetivo : Instalar a versão mais recente do NVidia Driver CUDA WSL
O que fazemos :
- Vá para a página
- Se você ainda não se cadastrou, nós registramos; concorda em participar do programa experimental
- Baixar e instalar.
Verificação : estará na fase de "verificação de operacionalidade CUDA"
WSL2
O objetivo : WSL2 versão 4.19.121 e
pré - tratamento superior :
- Atualizamos o Windows para o Windows 10 versão 2004, compilação 20150 e superior, se não for atualizado nas etapas acima
- Se, após a execução no terminal:
o conteúdo da ajuda será exibido (a lawsl --update
wsl --help
), e você terá uma versão antiga. Em seguida, siga as etapas abaixo - Se uma versão de 4.19.121 e superior for exibida, pularemos este estágio.
O que fazemos :
- Inicie o PowerShell como administrador e execute sequencialmente:
- Incluímos o componente adicional "Windows Subsystem for Linux":
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- Em seguida, ative o componente "Virtual Machine Platform":
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- Nós reiniciamos.
- Incluímos o componente adicional "Windows Subsystem for Linux":
- Atualizando WSL:
wsl --update
- Em seguida, instalamos a segunda versão do WSL - como padrão para todas as distribuições futuras:
Para fazer isso, inicie o PowerShell com direitos de administrador e execute:
wsl --set-default-version 2
Verifique : comando:
wsl --update
[depois de instalar a atualização] exibirá a versão 4.19.121 e superior.
Ubuntu 18.04 no WSL2
O objetivo : Ubuntu 18.04 no
pré - tratamento WSL2 : se (eu não testei o seguinte ramo, mas seria bom se você especificar nos comentários, quem enfrentou se ajudou) no WSL foi instalado o Ubuntu 18.04:
- Verificamos na lista:
wsl --list --all -v
- Para esta distribuição, alterne a versão WSL para a versão 2:
wsl --set-version Distro 2
Por exemplo:
wsl --set-version Ubuntu-18.04 2
- Nós reiniciamos.
O que fazemos :
- Vá para a Windows Store
- Estamos procurando pelo Ubuntu 18.04 e instale
Verifique : abra um terminal, execute:
wsl --list --all -v
Vejo
Ubuntu 18.04 Version 2
Preparando o Ubuntu
Pré-preparação
- Atualizando índices de pacotes:
sudo apt update
- Instale o cmake (para instalar o dlib):
sudo apt install cmake
- Para descompactar arquivos zip, instale, por exemplo, o utilitário descompactar :
sudo apt install unzip
Instalando o CUDA Toolkit
- Adicione CUDA ao índice do pacote:
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list' sudo apt update
- Instale o CUDA Toolkit:
sudo apt install -y cuda-toolkit-11-0
Verificando o desempenho do CUDA Toolkit
Para fazer isso, execute os exemplos (o programa deviceQuery é informativo):
- Baixando:
wget https://github.com/NVIDIA/cuda-samples/archive/master.zip
- Descompactar:
unzip master.zip
- Vá em frente e construa (tudo):
make
- Corre:
./bin/x86_64/linux/release/deviceQuery
O aplicativo exibirá uma lista de dispositivos compatíveis.
Instalando o Anaconda
- Faça o download da distribuição no link
- Corre:
bash Anaconda3-2020.02-Linux-x86_64.sh
Durante a instalação:
- Concordar com uma licença
- Deixamos PREFIXO
- Nós concordamos com a inicialização
- Reinicie o terminal ou execute:
source ~/.bashrc
Configurando o ambiente no anaconda
Configurando PULSE
- Baixando:
wget https://github.com/adamian98/pulse/archive/master.zip
- Descompactar:
unzip master.zip
- Crie um backup do pulse.yml:
cp pulse.yml pulse.yml.bak
- Corrija pulse.yml:
- Adicione canais (estas são fontes de pacotes):
- conda-forge
- anaconda
- Removemos todas as referências para uma versão específica do pacote.
Exemplo :zstd=1.3.7=h5bba6e5_0
remova a última parte da linha " ", começando com o sinal de igual: "=h5bba6e5_0
". Como resultado, obtemos "zstd=1.3.7
".
Fazemo-lo manualmente ou através do utilitário sed:
sed '/==/b; s/=\([^=]*\)$//' pulse.yml > pulse1.yml
: , , "==", regexp
- Adicione canais (estas são fontes de pacotes):
-
pulse1.yml
:
conda env create -f pulse1.yml
- , -
NotResolverPackage
.libfortran 3.0.1
:
- conda libfortran
- Anaconda Cloud Files (3.0.1), , , osx-64
- Anaconda Cloud, cloud-forge 3.0.0-1 linux-64. !
- pulse1.yml
libfortran=3.0.1
libfortran=3.0.0=1
- :
conda env create -f pulse1.yml
- , !
- Se você precisar de outros pacotes, preste atenção aos canais, adicione se necessário.
- Estamos aguardando a instalação
- Então ativamos:
conda activate pulse
Verificando o desempenho do Pytorch e CUDA em python
- Este script:
from __future__ import print_function import torch x = torch.rand(5, 3) print(x)
Deve produzir algo como isto:
tensor([[0.3380, 0.3845, 0.3217], [0.8337, 0.9050, 0.2650], [0.2979, 0.7141, 0.9069], [0.1449, 0.1132, 0.1375], [0.4675, 0.3947, 0.1426]])
- E este:
import torch torch.cuda.is_available()
Saída:
True
Nesta fase, em teoria, você pode parar. Mas fui em frente e instalei o notebook jupyter para experimentos.
O Jupyter Notebook é uma ferramenta incrivelmente poderosa para desenvolver e apresentar interativamente projetos de ciência de dados.
Trabalhando com PULSE
Vamos começar
- Ativamos o ambiente de pulso:
conda activate pulse
- Instalando o Jupiter:
pip install jupyter
- Corre:
E mais:jupyter notebook
- Crie um novo notebook Novo-> Python3 (notebook)
- Cole o código do arquivo lá
- Jogamos o arquivo de origem na raiz do projeto, renomeando-o para source.png:
cp /mnt/c/Users//Desktop/face1.png source.png
- Nós lançamos. Nós esperamos
Notas
- , 500-800, eps
- :
- , , 1024*1024
- PNG
- (RGB) RGBA
- : "
Could not find a face that downscales correctly within epsilon
", :
steps \ eps, , (steps), eps L2. .
:
BEST (400) | L2: 0.0013 GEOGROSS: | TOTAL: | time: ...
Onde 400 é o número (especificado) alcançado de etapas (etapas), L2 é o valor do interesse, deve ser menor que o eps especificado (pelo que entendi, essa é a precisão da otimização; camaradas desenvolvedores de IA, me diga o que é?).
Portanto, por exemplo, você precisa aumentar uma coisa ou todas juntas: etapas (coloque mais de 400) e \ ou eps (coloque eps = 0,0013 e mais, ou seja, deve ser para que eps> = L2) ...
- Se você quiser ver fotos intermediárias para cada etapa, adicione o parâmetro As
-save_intermediate
imagens são salvas na pastaruns/
: na pastaHR
- alta resolução, na pastaLR
- baixa resolução)
Os possíveis problemas estão abaixo.
Solução de problemas
Se você não apenas encontrou erros, mas também os resolveu, escreva, adicionarei aqui.
Tela branca no programa Windows Insider
Opção : você está com um usuário diferente, não possui privilégios suficientes.
Solução : veja o link . Mas eu resolvi isso sem alterar o registro.
Amostras CUDA não iniciam
Opções :
- Sua placa gráfica não é suportada
- Você não lançou o WSL2 mais recente
- Você não instalou a versão mais recente (experimental) do NVidia Driver CUDA WSL
jupyter notebook
Lança um erro na inicialização
Erro :
Start : This command cannot be run due to the error: The system cannot find the file specified.
Solução : copie a cadeia de conexão para o navegador (não entendi outras soluções).
Ao iniciar o PULSE, ocorre um erro constante
Erro :
Google Quota Exceeded
Solução : copie o arquivo de origem de mim e jogue-o na raiz - na pasta de cache (crie-o se não estiver lá).
Ou:
- Faça o download do arquivo usando o primeiro link do google em PULSE.py
- Renomeie-o usando o modelo md5hash _synthesis.pt, em que md5hash é o hash md5 do arquivo baixado (na versão atual
6b943ee69b8491ac40e8e9ced6175659_synthesis.pt
) - Nós o jogamos na pasta de cache (crie-o se não estiver na raiz do diretório em que o PULSE está localizado)
Ao iniciar o PULSE ou ao verificar o Pytorch, ocorre um erro
Erro :
ModuleNotFoundError: No module named 'torch'
Solução : Se você verificou o pytorch e ele funciona, significa que você não ativou o ambiente de pulso. Para fazer isso, execute o seguinte comando:
conda activate pulse
Conclusão
O próximo passo é estudar o StyleGAN e outras "redes neurais" com base nele.
Eu ficaria feliz em ler seus comentários sobre o artigo, recomendações (inclusive na apresentação, já que este é meu primeiro artigo público), alterações.
Obrigado a todos pela leitura!
Referências e links para utilitários, drivers
- Instruções de instalação do driver NVidia para CUDA no WSL
- Drivers NVidia para CUDA sob WSL
- Lista de placas de vídeo CUDA suportadas
- Exemplos CUDA
- Instruções para instalar o WSL2 no Windows 10
- Ajuda e Introdução ao Programa Windows Insider - Windows Early Access
- Instruções para instalar o Anaconda no sistema Linux
- Lista de distribuições Anaconda
- Jupyter Notbook - Análises e experiências
- Repositório PULSE
- Repositório Face-Depixelizer
- Repositório do StyleGAN