Aprendizaje profundo (Pytorch) - ND101 V7
Este repositorio contiene material relacionado con el programa de nanodegrado V7 de aprendizaje profundo de Udacity. Consiste en un montón de cuadernos tutoriales para varios temas de aprendizaje profundo. En la mayoría de los casos, los cuadernos lo llevan a través de la implementación de modelos como redes convolucionales, redes recurrentes y Gans. Hay otros temas cubiertos, como la inicialización de peso y la normalización por lotes.
También hay cuadernos utilizados como proyectos para el programa NanodeGree. En el programa en sí, los proyectos son revisados por personas reales (revisores de UDacity), pero el código inicial también está disponible aquí.
Tabla de contenido
Tutoriales
Introducción a las redes neuronales
- Introducción a las redes neuronales: aprenda cómo implementar descenso de gradiente y aplicarlo a predecir patrones en los datos de admisiones de los estudiantes.
- Análisis de sentimientos con Numpy: Andrew Trask lo lleva a la construcción de un modelo de análisis de sentimientos, prediciendo si algún texto es positivo o negativo.
- Introducción a Pytorch: Aprenda a construir redes neuronales en Pytorch y usar redes previamente capacitadas para clasificadores de imágenes de última generación.
Redes neuronales convolucionales
- Redes neuronales convolucionales: visualice la salida de capas que componen un CNN. Aprenda a definir y capacitar a un CNN para clasificar los datos MNIST, una base de datos de dígitos escrita a mano que es notoria en los campos de la máquina y el aprendizaje profundo. Además, defina y entrena un CNN para clasificar imágenes en el conjunto de datos CIFAR10.
- Transferir el aprendizaje. En la práctica, la mayoría de las personas no entrenan sus propias redes en grandes conjuntos de datos; Utilizan redes previamente capacitadas como VGGNet. Aquí usará VGGNet para ayudar a clasificar imágenes de flores sin entrenar una red de extremo a extremo desde cero.
- Inicialización de peso: explore cómo la inicialización de los pesos de la red afecta el rendimiento.
- Autoencoders: Construya modelos para la compresión de imágenes y el desactivado, utilizando redes de avance y convolucionales en Pytorch.
- Transferencia de estilo: Extraer características de estilo y contenido de imágenes, utilizando una red previa capacitada. Implementar la transferencia de estilo de acuerdo con el documento, transferencia de estilo de imagen utilizando redes neuronales convolucionales de Gatys ET. Alabama. ¡Defina las pérdidas apropiadas para crear iterativamente una imagen objetivo transferida de estilo de su propio diseño!
Redes neuronales recurrentes
- Introducción a redes recurrentes (series temporales y RNN a nivel de personaje): las redes neuronales recurrentes pueden usar información sobre la secuencia de datos, como la secuencia de caracteres en el texto; Aprenda a implementarlos en Pytorch para una variedad de tareas.
- Incruscaciones (Word2Vec): Implemente el modelo Word2Vec para encontrar representaciones semánticas de palabras para su uso en el procesamiento del lenguaje natural.
- Análisis de sentimientos RNN: Implemente una red neuronal recurrente que pueda predecir si el texto de una revisión de Moview es positivo o negativo.
- Atención: implementa la atención y aplíquela a los vectores de anotación.
Redes adversas generativas
- Red de adversidad generativa en MNIST: entrena una red adversa generativa simple en el conjunto de datos MNIST.
- Normalización por lotes: aprenda cómo mejorar las tasas de capacitación y la estabilidad de la red con normalizaciones por lotes.
- GaN de convolucional profundo (DCGAN): implementa un DCGAN para generar nuevas imágenes basadas en el conjunto de datos de números de la casa de Street View (SVHN).
- Cyclegan: implementa un ciclogan que está diseñado para aprender de datos no apareados y sin etiquetar; Use generadores entrenados para transformar imágenes del verano al invierno y viceversa.
Implementar un modelo (con AWS Sagemaker)
- Todos los cuadernos de ejercicios y proyectos para las lecciones de implementación del modelo se pueden encontrar en el repositorio de GitHub vinculado. Aprenda a implementar modelos previamente capacitados utilizando AWS Sagemaker.
Proyectos
- Predecir los patrones de intercambio de bicicletas: implementa una red neuronal en Numpy para predecir alquileres de bicicletas.
- Clasificador de raza de perros: construya una red neuronal convolucional con Pytorch para clasificar cualquier imagen (incluso una imagen de una cara) como una raza específica para perros.
- Generación de guiones de TV: capacite una red neuronal recurrente para generar guiones en el estilo de diálogo de Seinfeld.
- Generación de la cara: use un DCGAN en el conjunto de datos Celeba para generar imágenes de caras humanas nuevas y realistas.
Material electivo
- Introducción a TensorFlow: comenzando a construir redes neuronales con flujo de tensor.
- Keras: Aprenda a construir redes neuronales y redes neuronales convolucionales con Keras.
Dependencias
Configurar y administrar su entorno con Anaconda
Según los documentos de Anaconda:
Conda es un sistema de gestión de paquetes de código abierto y un sistema de gestión del entorno para instalar múltiples versiones de paquetes de software y sus dependencias y cambiar fácilmente entre ellos. Funciona en Linux, OS X y Windows, y fue creado para programas de Python, pero puede empaquetar y distribuir cualquier software.
Descripción general
El uso de Anaconda consiste en lo siguiente:
- Instale
miniconda en su computadora, seleccionando la última versión de Python para su sistema operativo. Si ya tiene conda o miniconda instalado, debería poder omitir este paso y pasar al paso 2. - Crear y activar * un nuevo entorno
conda .
* Cada vez que desee trabajar en cualquier ejercicio, ¡active su entorno conda !
1. Instalación
Descargue la última versión de miniconda que coincida con su sistema.
| Linux | Impermeable | Windows |
|---|
| De 64 bits | 64 bits (instalador bash) | 64 bits (instalador bash) | 64 bits (instalador EXE) |
| De 32 bits | 32 bits (instalador BASH) | | 32 bits (instalador EXE) |
Instale Miniconda en su máquina. Instrucciones detalladas:
- 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. Cree y active el entorno
Para los usuarios de Windows, estos siguientes comandos deben ejecutarse desde la solicitud de Anaconda en lugar de una ventana de terminal de Windows. Para Mac, funcionará una ventana de terminal normal.
Git y control de versiones
Estas instrucciones también suponen que ha instalado git para trabajar con GitHub desde una ventana de terminal, pero si no lo hace, puede descargarlo primero con el comando:
Si desea obtener más información sobre el control de versiones y el uso de git desde la línea de comandos, eche un vistazo a nuestro curso gratuito: control de versiones con Git.
¡Ahora estamos listos para crear nuestro entorno local!
- Clone el repositorio y navegue a la carpeta descargada. Esto puede tardar un minuto o dos en clon debido a los datos de imagen incluidos.
git clone https://github.com/udacity/deep-learning-v2-pytorch.git
cd deep-learning-v2-pytorch
Cree (y active) un nuevo entorno, llamado deep-learning con Python 3.6. Si se le solicita que continúe con la instalación (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
En este punto, su línea de comando debe verse algo así como: (deep-learning) <User>:deep-learning-v2-pytorch <user>$ . El (deep-learning) indica que su entorno ha sido activado y puede continuar con nuevas instalaciones de paquetes.
Instalar Pytorch y TorchVision; Esto debería instalar la última versión de Pytorch.
conda install pytorch torchvision -c pytorch
conda install pytorch -c pytorch
pip install torchvision
Instale algunos paquetes PIP requeridos, que se especifican en el archivo de texto de requisitos (incluido OpenCV).
pip install -r requirements.txt
- ¡Eso es todo!
Ahora la mayoría de las bibliotecas deep-learning están disponibles para usted. Muy ocasionalmente, verá un repositorio con un archivo de requisitos de adición, que existe si desea usar TensorFlow y Keras, por ejemplo. En este caso, se le recomienda instalar otra biblioteca en su entorno existente o crear un nuevo entorno para un proyecto específico.
Ahora, suponiendo que su entorno deep-learning todavía esté activado, puede navegar al repositorio principal y comenzar a mirar los cuadernos:
cd
cd deep-learning-v2-pytorch
jupyter notebook
Para salir del entorno cuando haya completado su sesión de trabajo, simplemente cierre la ventana del terminal.