Глубокое обучение (Pytorch) - ND101 V7
Этот репозиторий содержит материал, связанный с программой Udacity Deep Learning V7 Nanodegree. Он состоит из кучи учебных записей для различных тем глубокого обучения. В большинстве случаев ноутбуки приводят вас через реализацию таких моделей, как сверточные сети, рецидивирующие сети и Gans. Есть и другие темы, такие как инициализация веса и нормализация партии.
Есть также ноутбуки, используемые в качестве проектов для программы NanodeGree. В самой программе проекты пересматриваются реальными людьми (рецензенты Udacity), но стартовый код также доступен здесь.
Оглавление
Учебные пособия
Введение в нейронные сети
- Введение в нейронные сети: Узнайте, как внедрить градиентный спуск и применить его к прогнозированию закономерностей в данных о приеме студентов.
- Анализ настроений с Numpy: Эндрю Траск ведет вас через создание модели анализа настроений, предсказывая, является ли какой -то текст положительным или отрицательным.
- Введение в Pytorch: Узнайте, как создавать нейронные сети в Pytorch и использовать предварительно обученные сети для современных классификаторов изображений.
Сверточные нейронные сети
- Свожденные нейронные сети: визуализируйте вывод слоев, которые составляют CNN. Узнайте, как определить и обучить CNN для классификации данных MNIST, рукописной базы данных цифр, которая известна в областях машины и глубокого обучения. Кроме того, определите и тренируйте CNN для классификации изображений в наборе данных CIFAR10.
- Передача обучения. На практике большинство людей не тренируют свои собственные сети на огромных наборах данных; Они используют предварительно обученные сети, такие как VGGNet. Здесь вы используете VGGNET, чтобы помочь классифицировать изображения цветов без обучения сквозной сети с нуля.
- Инициализация веса: изучите, как инициализация весов сети влияет на производительность.
- AutoEncoders: построить модели для сжатия изображений и отмены, используя прямые и сверточные сети в Pytorch.
- Передача стиля: извлечь функции стиля и контента из изображений, используя предварительно обученную сеть. Реализуйте перенос стиля в соответствии с документом, передача стиля изображения с использованием сверточных нейронных сетей Gatys et. ал. Определите соответствующие потери для итеративного создания целевого, передаваемого стилем изображения вашего собственного дизайна!
Повторяющиеся нейронные сети
- Вступление в рецидивирующие сети (временные ряды и RNN на уровне символов): Рецидивные нейронные сети способны использовать информацию о последовательности данных, таких как последовательность символов в тексте; Узнайте, как их реализовать в Pytorch для различных задач.
- Enterdings (Word2VEC): Реализуйте модель Word2VEC, чтобы найти семантические представления слов для использования в обработке естественного языка.
- Анализ настроений RNN: реализовать повторяющуюся нейронную сеть, которая может предсказать, является ли текст обзора Moview позитивным или отрицательным.
- Внимание: реализуйте внимание и примените его к векторам аннотаций.
Генеративные состязательные сети
- Генеративная состязательная сеть на MNIST: тренировать простую генеративную состязательную сеть на набор данных MNIST.
- Нормализация партии: научитесь улучшить уровень обучения и стабильность сети с помощью партийных нормализаций.
- Глубокий сверточный GAN (DCGAN): внедрить DCGAN для генерации новых изображений на основе набора данных HOUT HOUS View View (SVHN).
- Cyclegan: реализовать Cyclegan, который предназначен для того, чтобы учиться на непарных и немеченых данных; Используйте обученные генераторы, чтобы трансформировать изображения из лета в зиму и наоборот.
Развертывание модели (с AWS SageMaker)
- Все записные книжки для упражнений и проекта для уроков по развертыванию модели можно найти в связанном, GitHub Repo. Научитесь развертывать предварительно обученные модели с помощью AWS SageMaker.
Проекты
- Прогнозирование моделей совместного использования велосипедов: внедрить нейронную сеть в Numpy для прогнозирования проката велосипедов.
- Классификатор породы собак: создайте сверточную нейронную сеть с Pytorch для классификации любого изображения (даже изображения лица) как конкретной породы собак.
- Генерация сценариев телевизора: тренируйте повторяющуюся нейронную сеть для создания сценариев в стиле диалога от Seinfeld.
- Генерация лица: используйте DCGAN в наборе данных Celeba, чтобы генерировать изображения новых и реалистичных человеческих лиц.
Факультативный материал
- Intro to Tensorflow: начало строительства нейронных сетей с помощью Tensorflow.
- Керас: Научитесь строить нейронные сети и сверточные нейронные сети с керами.
Зависимости
Настроить и управлять своей средой с помощью Anaconda
В соответствии с документами Anaconda:
Conda - это система управления пакетами с открытым исходным кодом и система управления окружающей средой для установки нескольких версий программных пакетов и их зависимостей и легко переключаться между ними. Он работает на Linux, OS X и Windows, и был создан для Python программ, но может упаковать и распространять любое программное обеспечение.
Обзор
Использование Anaconda состоит из следующего:
- Установите
miniconda на свой компьютер, выбрав последнюю версию Python для вашей операционной системы. Если у вас уже установлена conda или miniconda , вы сможете пропустить этот шаг и перейти к шагу 2. - Создать и активировать * новую среду
conda .
* Каждый раз, когда вы хотите работать над любыми упражнениями, активируйте свою среду conda !
1. Установка
Загрузите последнюю версию miniconda , которая соответствует вашей системе.
| Linux | Маки | Окна |
|---|
| 64-бит | 64-битный (Bash Installer) | 64-битный (Bash Installer) | 64-битный (exe-установщик) |
| 32-битный | 32-битный (установщик Bash) | | 32-битный (Exe Installer) |
Установите Miniconda на машине. Подробные инструкции:
- 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. Создать и активировать окружающую среду
Для пользователей Windows эти следующие команды должны быть выполнены из приглашения Anaconda, а не окно терминала Windows. Для Mac будет работать нормальное окно терминала.
Управление git и версией
Эти инструкции также предполагают, что у вас есть git , установленная для работы с GitHub из окна терминала, но если вы этого не сделаете, вы можете скачать это первым с помощью команды:
Если вы хотите узнать больше об управлении версиями и использованием git из командной строки, посмотрите на наш бесплатный курс: управление версией с помощью GIT.
Теперь мы готовы создать нашу местную среду!
- Клонировать репозиторий и перейдите к загруженной папке. Это может занять минуту или две, чтобы клонировать из -за включенных данных изображения.
git clone https://github.com/udacity/deep-learning-v2-pytorch.git
cd deep-learning-v2-pytorch
Создайте (и активируйте) новую среду, названную deep-learning с Python 3.6. Если будет предложено продолжить с помощью установки (Proceed [y]/n) типа Y.
conda create -n deep-learning python=3.6
source activate deep-learning
conda create --name deep-learning python=3.6
activate deep-learning
На этом этапе ваша командная строка должна выглядеть как-то вроде: (deep-learning) <User>:deep-learning-v2-pytorch <user>$ . (deep-learning) указывает, что ваша среда была активирована, и вы можете продолжить дальнейшие установки упаковки.
Установить Pytorch и Torchvision; Это должно установить последнюю версию Pytorch.
conda install pytorch torchvision -c pytorch
conda install pytorch -c pytorch
pip install torchvision
Установите несколько необходимых пакетов PIP, которые указаны в текстовом файле требований (включая OpenCV).
pip install -r requirements.txt
- Вот и все!
Теперь большинство библиотек deep-learning доступны для вас. Очень иногда вы увидите репозиторий с файлом требований с добавлением, который, например, если вы хотите использовать Tensorflow и Keras. В этом случае вам рекомендуется установить другую библиотеку в существующую среду или создать новую среду для конкретного проекта.
Теперь, предполагая, что ваша среда deep-learning все еще активирована, вы можете перейти к основному репо и начать смотреть ноутбуки:
cd
cd deep-learning-v2-pytorch
jupyter notebook
Чтобы выйти из среды, когда вы закончите свою рабочую сессию, просто закройте окно терминала.