Участник:Mikethehuman/sandbox

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Работа с Theano на Amazon Web Services)
Строка 45: Строка 45:
== Работа с Theano на Amazon Web Services ==
== Работа с Theano на Amazon Web Services ==
 +
При отсутствии устройства GPU на локальной машине можно воспользоваться платным удаленным фреймворком, например, Amazon Web Services [http://aws.amazon.com/].
 +
1. https://www.kaggle.com/c/facial-keypoints-detection/details/deep-learning-tutorial - создание виртуальной машины.
1. https://www.kaggle.com/c/facial-keypoints-detection/details/deep-learning-tutorial - создание виртуальной машины.
-
 
-
Not everyone has a GPU - it's primarily used for gaming or heavy 3D visualization. The GPU is orders of magnitude faster than the cpu for math operations (such as matrix multiplication), which is essential for many machine learning algorithms. In this tutorial, most of the training of neural nets needs to be run on a GPU, otherwise it could take hours to train.
 
-
 
-
If you don't have a GPU, you can spin up some Amazon Web Services instances to run this tutorial and pay a small fee for the computing hours.
 
Log into your AWS management console and click over to EC2. There are two options for creating your instance:
Log into your AWS management console and click over to EC2. There are two options for creating your instance:

Версия 16:24, 21 апреля 2015

Глубокое обучение – быстро развивающийся сегмент области знания, связанной с искусственным интеллектом, - является катализатором развития самых разных отраслей, начиная от медицины и фармакологии и заканчивая автопилотируемыми автомобилями. Глубокое обучение (глубокое структурное обучение, или иерархическое обучение) -- это область машинного обучения, заключающаяся в построении нелинейной модели распознавания, каждый элемент которой описывает соответствующий уровень признакового агрегирования данных.

На конференции "GPU Technology Conference" [1] в 2015 г. генеральным директором NVIDIA Дженсоном Хуангом было представлено три новые технологии, которые используются для развития области глубокого обучения: TITAN X, DIGITS и DIGITS DevBox.

Содержание

NVIDIA GeForce GTX TITAN X

TITAN X [2] – графический процессор для быстрого обучения глубоких нейронных сетей. Построенный на графической архитектуре NVIDIA Maxwell, TITAN X обладает вдвое большей производительностью и энергоэффективностью по сравнению с предшественником. TITAN X – это 12ГБ памяти и 3072 ядра, которые обеспечивают 7 терафлопс в вычислениях одинарной точности. Благодаря производительности и полосе пропускания памяти 336.5 ГБ/с, ускоритель рекомендуется использовать для построения сетей глубокого обучения с числом параметров до сотен миллионов. В частности, для обучения сети AlexNet [3] с помощью набора из 1.2 миллиона изображений ImageNet TITAN X понадобилось менее трех дней, тогда как 16-ядерный CPU справляется с этой задачей за 40 дней.

DIGITS Deep Learning GPU Training System

DIGITS [4] – программное обеспечение, предназначенное для выполнения исследовательских работ по построению и конфигурации глубоких нейронных сетей. Интуитивно понятный пользовательский интерфейс и возможности управления DIGITS обеспечивают подготовку обучающих наборов данных локально и из сети.

DIGITS DevBox

DIGITS DevBox [5] – специализированная рабочая станция для работы с задачами глубокого обучения, построенная на базе четырех TITAN X GPU, поставляемое с предустановленной системой обучения DIGITS. Система DIGITS DevBox является ядром комплексной платформы для ускорения исследований глубокого обучения. DevBox состоит из четырех карт GPU TITAN X, памяти и интерфейсов. Система поставляется с предустановленным программным обеспечением, которое необходимо ученым и исследователей для создания собственных глубоких нейронных сетей. В список приложений входят пакет программ DIGITS, самые популярные платформы глубокого обучения Caffe, Theano и Torch, а также cuDNN 2.0 – GPU-ускоренная библиотека для задач глубокого обучения от NVIDIA [6]. Первые результаты многопроцессорного обучения показывают, что DIGITS DevBox обеспечивает производительность почти в четыре раза выше по сравнению с одним TITAN X в тестах глубокого обучения. С помощью DIGITS DevBox обучить сеть AlexNet можно всего за 13 часов, тогда как обычному ПК на базе самого быстрого GPU потребовалось бы более двух суток, а системе на базе CPU - больше месяца.

Система DIGITS DevBox состоит из следующих компонентов.

  • Четыре TITAN X GPU, обеспечивающие 7 тетрафлопс в ординарной точности, 12 Гб памяти и 336.5 Гб/с полосы пропускания памяти. В комплект DIGITS DevBox входят до четырех GPUs, до 64 GB DDR4, материнская плата ASUS X99 (8 PCIe slots) + Core i7, 2 x 48 port gen3 PCIe (PEX8748) + CPU for PCIe, накопитель, до 3x3 TB RAID 5 + M2 SATA + SSD, блок питания 1500W, операционная система Ubuntu 14.04, драйвера, NVIDIA® CUDA® Toolkit 7.0.
  • Программное обеспечение NVIDIA DIGITS, предоставляющее интерфейсы для обучения и визуализации нейронных сетей для классификации изображений.
  • Система Ubuntu 14.04 с предустановленными Caffe, Torch, Theano, BIDMach, cuDNN v2, and CUDA 7.0.

С чего начать

  1. Посмотреть вебинар по сверточным нейронным сетям [7] и Caffe для глубокого обучения [8].
  2. Установить фреймворк по выбору: Caffe, Torch или Theano.
  3. Загрузить и установить cuDNN [9], ускоренную на GPU библиотеку NVIDIA, содержащую примитивы для глубоких нейронных сетей.

Первая программа на CUDA

Чтобы написать первую программу на CUDA, надо установить:

  1. Microsoft Visual Studio (на MVR стоит версия Professional 2012),
  2. CUDA SDK (на MVR стоит версия 7.0) [10].

После установки SDK стоит посмотреть полезные примеры от NVIDIA, которые по умолчанию распаковываются в C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.0. Кроме того, появится возможность компилировать .cu файлы командой nvcc из командной строки, например,

nvcc -ptx myfun.cu

Это нужно, например, для того, чтобы использовать CudaKernel в Matlab для запуска своих CUDA-функций, см. [11].

Руководство по установке Caffe на Windows: [12]. Highlights: нужно поставить и прописать зависимости для OpenCV, Boost, OpenBLAS, GFlags, GLog, ProtoBuf, LevelDB, HDF5, LMDB. Кроме того, для облегчения процесса сборки понадобится установить CMake.

Руководство по установке Theano на Windows: [13].


Работа с Theano на Amazon Web Services

При отсутствии устройства GPU на локальной машине можно воспользоваться платным удаленным фреймворком, например, Amazon Web Services [14].

1. https://www.kaggle.com/c/facial-keypoints-detection/details/deep-learning-tutorial - создание виртуальной машины.

Log into your AWS management console and click over to EC2. There are two options for creating your instance:

On demand instances: Uninterrupted running of your code. More expensive at $0.702 per Instance Hour. Spot instances: This option gives you left-over compute power at a much cheaper rate. Use this option if you can handle potential interrupts. It's at around $0.0031 per Instance Hour.

2. http://markus.com/install-theano-on-aws - выбор образа виртуальной машины или установка Theano

Theano is a Python package for deep learning that can utilize NVIDIA's CUDA toolkit to run on the gpu. The gpu is orders of magnitude faster than the cpu for math operations (such as matrix multiplication), which is essential for many machine learning algorithms. These steps will help you get your deep learning models up and running on AWS. These instructions use Ubuntu 14.04 64-bit with Cuda 7.0 on a g2.2xlarge instance.


3. http://deeplearning.net/tutorial/mlp.html#nonlinearity Многослойный перцептрон

The next architecture we are going to present using Theano is the single-hidden-layer Multi-Layer Perceptron (MLP). An MLP can be viewed as a logistic regression classifier where the input is first transformed using a learnt non-linear transformation \Phi. This transformation projects the input data into a space where it becomes linearly separable. This intermediate layer is referred to as a hidden layer. A single hidden layer is sufficient to make MLPs a universal approximator. However we will see later on that there are substantial benefits to using many such hidden layers, i.e. the very premise of deep learning.

Личные инструменты