Aprendizagem Deep (Pytorch) - ND101 V7
Este repositório contém material relacionado ao Programa de Nanodegree V7 de aprendizado profundo da Udacity. Consiste em um monte de cadernos tutoriais para vários tópicos de aprendizado profundo. Na maioria dos casos, os notebooks levam você a implementar modelos como redes convolucionais, redes recorrentes e Gans. Existem outros tópicos abordados, como inicialização de peso e normalização do lote.
Também existem notebooks usados como projetos para o programa NanodeGree. No próprio programa, os projetos são revisados por pessoas reais (revisores de udacity), mas o código inicial também está disponível aqui.
Índice
Tutoriais
Introdução às redes neurais
- Introdução às redes neurais: Aprenda a implementar a ascendência de gradiente e aplicá -la a padrões de previsão nos dados de admissão de estudantes.
- Análise de sentimentos com Numpy: Andrew Trask leva você através da construção de um modelo de análise de sentimentos, prevendo se algum texto for positivo ou negativo.
- Introdução ao Pytorch: Aprenda a criar redes neurais em Pytorch e usar redes pré-treinadas para classificadores de imagem de última geração.
Redes neurais convolucionais
- Redes neurais convolucionais: visualize a saída de camadas que compõem uma CNN. Aprenda a definir e treinar uma CNN para classificar os dados do MNIST, um banco de dados manuscrito de dígitos que é notório nos campos da máquina e do aprendizado profundo. Além disso, defina e treine uma CNN para classificar imagens no conjunto de dados CIFAR10.
- Transferência de aprendizado. Na prática, a maioria das pessoas não treina suas próprias redes em enormes conjuntos de dados; Eles usam redes pré-treinadas, como o VGGNET. Aqui você usará o VGGNET para ajudar a classificar imagens de flores sem treinar uma rede de ponta a ponta do zero.
- Inicialização do peso: explore como a inicialização dos pesos da rede afeta o desempenho.
- AutoEncoders: construa modelos para compactação de imagem e desmontagem, usando redes de feedforward e convolucional em Pytorch.
- Transferência de estilo: extrair os recursos de estilo e conteúdo das imagens, usando uma rede pré-treinada. Implementar transferência de estilo de acordo com o artigo, transferência de estilo de imagem usando redes neurais convolucionais por Gatys et. al. Defina perdas apropriadas para criar iterativamente uma imagem de alvo e transferido de estilo de seu próprio design!
Redes neurais recorrentes
- Introdução a redes recorrentes (série temporal e RNN no nível do caractere): as redes neurais recorrentes podem usar informações sobre a sequência de dados, como a sequência de caracteres no texto; Aprenda a implementá -los em Pytorch para uma variedade de tarefas.
- Incorporação (word2vec): implemente o modelo Word2vec para encontrar representações semânticas de palavras para uso no processamento de linguagem natural.
- Análise de sentimentos RNN: Implemente uma rede neural recorrente que pode prever se o texto de uma revisão do Moview é positivo ou negativo.
- Atenção: Implemente a atenção e aplique -a aos vetores de anotação.
Redes adversárias generativas
- Rede Adversária Gerativa no MNIST: Treine uma rede adversária generativa simples no conjunto de dados MNIST.
- Normalização em lote: aprenda a melhorar as taxas de treinamento e a estabilidade da rede com normalizações em lote.
- Deep Convolucional GaN (DCGAN): implemente um DCGAN para gerar novas imagens com base no conjunto de dados do Street View House Numbers (SVHN).
- Cyclegan: implemente um ciclão projetado para aprender com dados não pareados e não marcados; Use geradores treinados para transformar imagens do verão ao inverno e vice -versa.
Implantando um modelo (com a AWS Sagemaker)
- Todos os notebooks de exercício e projeto para as lições sobre a implantação de modelos podem ser encontrados no repositório do Github vinculado. Aprenda a implantar modelos pré-treinados usando a AWS Sagemaker.
Projetos
- Prevendo padrões de compartilhamento de bicicletas: implemente uma rede neural em Numpy para prever aluguel de bicicletas.
- Classificador de raças de cães: construa uma rede neural convolucional com Pytorch para classificar qualquer imagem (mesmo uma imagem de um rosto) como uma raça de cachorro específica.
- Geração de scripts de TV: treine uma rede neural recorrente para gerar scripts no estilo de diálogo de Seinfeld.
- Geração de face: use um DCGAN no conjunto de dados do celeiro para gerar imagens de rostos humanos novos e realistas.
Material eletivo
- Introdução ao TensorFlow: começando a criar redes neurais com TensorFlow.
- Keras: Aprenda a construir redes neurais e redes neurais convolucionais com Keras.
Dependências
Configure e gerencie seu ambiente com Anaconda
De acordo com os documentos da Anaconda:
O CONDA é um sistema de gerenciamento de pacotes de código aberto e sistema de gerenciamento de meio ambiente para instalar várias versões de pacotes de software e suas dependências e alternar facilmente entre eles. Ele funciona no Linux, OS X e Windows, e foi criado para programas Python, mas pode embalar e distribuir qualquer software.
Visão geral
Usando a Anaconda consiste no seguinte:
- Instale
miniconda no seu computador, selecionando a versão mais recente do Python para o seu sistema operacional. Se você já possui conda ou miniconda , poderá pular esta etapa e passar para a etapa 2. - Crie e ativar * um novo ambiente
conda .
* Cada vez que você deseja trabalhar em qualquer exercício, ative seu ambiente conda !
1. Instalação
Faça o download da versão mais recente do miniconda que corresponde ao seu sistema.
| Linux | Mac | Windows |
|---|
| 64 bits | 64 bits (instalador de bash) | 64 bits (instalador de bash) | 64 bits (instalador exe) |
| 32 bits | 32 bits (instalador de bash) | | 32 bits (instalador exe) |
Instale o Miniconda em sua máquina. Instruções detalhadas:
- Linux: https://conda.io/projects/conda/en/latest/user-guide/install/linux.html
- Mac: https://conda.io/projects/conda/en/latest/user-guide/install/macos.html
- Windows: https://conda.io/projects/conda/en/latest/user-guide/install/windows.html
2. Crie e ativar o ambiente
Para os usuários do Windows, esses comandos a seguir precisam ser executados a partir do prompt da Anaconda, em vez de uma janela do terminal do Windows. Para Mac, uma janela normal do terminal funcionará.
Git e controle de versão
Essas instruções também assumem que você está instalado para trabalhar com o git a partir de uma janela de terminal, mas se não o fizer, pode baixar isso primeiro com o comando:
Se você quiser saber mais sobre o controle da versão e o uso git da linha de comando, dê uma olhada no nosso curso gratuito: controle de versão com o Git.
Agora, estamos prontos para criar nosso ambiente local!
- Clone o repositório e navegue até a pasta baixada. Isso pode levar um ou dois minutos para clonar devido aos dados de imagem incluídos.
git clone https://github.com/udacity/deep-learning-v2-pytorch.git
cd deep-learning-v2-pytorch
Crie (e ativar) um novo ambiente, chamado de deep-learning com o Python 3.6. Se solicitado a prosseguir com a instalação (Proceed [y]/n) tipo Y.
conda create -n deep-learning python=3.6
source activate deep-learning
conda create --name deep-learning python=3.6
activate deep-learning
Neste ponto, sua linha de comando deve se parecer com: (deep-learning) <User>:deep-learning-v2-pytorch <user>$ . O (deep-learning) indica que seu ambiente foi ativado e você pode prosseguir com mais instalações de pacotes.
Instalar pytorch e Torchvision; Isso deve instalar a versão mais recente do Pytorch.
conda install pytorch torchvision -c pytorch
conda install pytorch -c pytorch
pip install torchvision
Instale alguns pacotes PIP necessários, especificados no arquivo de texto de requisitos (incluindo o OpenCV).
pip install -r requirements.txt
- É isso!
Agora, a maioria das bibliotecas deep-learning está disponível para você. Muito ocasionalmente, você verá um repositório com um arquivo de requisitos de adição, que existe, caso você queira usar o Tensorflow e as Keras, por exemplo. Nesse caso, você é incentivado a instalar outra biblioteca em seu ambiente existente ou criar um novo ambiente para um projeto específico.
Agora, assumindo que seu ambiente deep-learning ainda esteja ativado, você pode navegar para o repositório principal e começar a olhar para os notebooks:
cd
cd deep-learning-v2-pytorch
jupyter notebook
Para sair do ambiente quando você concluir sua sessão de trabalho, basta fechar a janela do terminal.