- Письмо начинающему изучать Data Science
- Ваша первая нейронная сеть на графическом процессоре (GPU). Руководство для начинающих
- Оборудование
- Устанавливаем окружение
- Создаем нейронную сеть
- Загрузка и нормализация CIFAR10
- Определение нейронной сети
- Тренировка сети на тренировочных данных
- Тестирование сети на тестовых данных
- Тренировка нейронной сети на GPU
- Что делать, если вы хотите изучать ИИ, но не шарите в математике? Часть третья. Собираем и настраиваем систему
- Но сперва — экспресс-вариант
- Подбор комплектующих
- Видеокарта — всему голова
- Хранилище данных
- Оперативная память
- Материнская плата
- Корпус
- Процессор
- Блок питания
- Настройка системы
- Docker
- Виртуальная машина
- Чистая установка
- Языки
- Драйверы и API
- Приложения-помощники
- Фреймворки / библиотеки
- Высокоуровневые библиотеки
- Python-библиотеки
- Настройка Linux-системы
- Первый запуск
- Обновление системы
- cuDNN
Письмо начинающему изучать Data Science
Я бы хотел получить такое письмо три года назад, когда только начинал изучать Data Science (DS). Чтобы там были необходимые ссылки на полезные материалы. Статья не претендует на полноту охвата необъятной области DS. Однако для начинающего специалиста будет полезна.
В DS наиболее часто используются следующие технологии:
- свободное владение английским языком;
- операционная система Ubuntu Linux (так исторически сложилось);
- язык программирования Python (но лучше Anaconda Python);
- интегрированная среда разработки (IDE) PyCharm (Community Edition бесплатная);
- инфраструктура (framework) для машинного обучения (ML machine learning), глубокого обучения (DL deep learning) и создания нейросетей (PyTorch, TensorFlow и десятки других);
- если нет своей мощной видеокарты (GPU graphical processing unit), тогда следует пользоваться бесплатными облачными технологиями на основе Jupyter Notebook;
- умение пользоваться распределенной системой управления версиями Git (GitHub, GitLab, Bitbucket и т.д.);
- иметь учетную запись на StackOverflow и всех его ответвлениях.
Также со временем вам понадобятся множество различных дополнительных к Python библиотек и инструментов обработки изображений и данных. Их десятки. Наиболее полезные для меня (обработка изображений) в порядке убывания важности:
- Virtual Environment – виртуальная среда разработки для различных проектов, которая инкапсулирует в себе разные версии библиотек и инструментов.
- NumPy – работа с матрицами, линейная алгебра.
- OpenCV – множество различных алгоритмов для работы с изображениями.
- Jupyter Notebook – веб-приложение для разработки и выполнения программ Python в браузере и в облаке.
- Tensorflow-gpu – конфигурация нейронных сетей и вычисления на графических картах.
- iPython – более удобная консольная работа с командами Python, советую использовать её вместо консоли по-умолчанию.
- Matplotlib – рисование графиков и диаграмм.
- Pillow – работа со всеми популярными форматами изображений.
- Pandas – работа с данными.
- SciPy – продвинутая работа с алгоритмами, бесплатная альтернатива программе MatLab.
- Scikit-learn – алгоритмы машинного обучения.
- Scikit-image – продвинутая обработка изображений.
- K3D – работа с трехмерными графиками и изображениями в Jupyter Notebook.
Машинное обудение (ML machine learning), а особенно глубокое обучение (Deep Learning) невозможны без данных. Необходимые базы данных (датасеты, datasets) можно поискать через сервис Google Dataset Search или среди 25-ти тысяч датасетов Kaggle.
Что у меня есть:
- Различные программы Python. Начните с простых скриптов и продолжите более сложными.
- Набор инструкций по настройке Ubuntu Linux. Из них самая важная инструкция по установке и настройке виртуальной среды.
- Брошюра «Введение в машинное обучение и искусственные нейронные сети». Самые основы, которые собраны со всего Интернета, но в моем «уникальном» исполнении.
- Курсы и видео для начинающих, с которых стоит начинать изучать нейросети.
- Полезные инструменты, где каждый найдет что-нибудь интересное для себя.
- Общий список курсов, которые прошел и которые хотел бы пройти.
Источник
Ваша первая нейронная сеть на графическом процессоре (GPU). Руководство для начинающих
В этой статье я расскажу как за 30 минут настроить среду для машинного обучения, создать нейронную сеть для распознавания изображений a потом запустить ту же сеть на графическом процессоре (GPU).
Для начала определим что такое нейронная сеть.
В нашем случае это математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы.
Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения — одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение.
С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и прочих методов.
Оборудование
Сначала разберемся с оборудованием. Нам необходим сервер с установленной на нем операционной системой Linux. Оборудование для работы систем машинного обучения требуется достаточно мощное и как следствие дорогое. Тем, у кого нет под рукой хорошей машины, рекомендую обратить внимание на предложение облачных провайдеров. Необходимый сервер можно получить в аренду быстро и платить только за время использования.
В проектах, где необходимо создание нейронных сетей я использую сервера одного из российских облачных провайдеров. Компания предлагает в аренду облачные серверы специально для машинного обучения с мощными графическими процессорами (GPU) Tesla V100 от компании NVIDIA. Если коротко: использование сервера с GPU может быть в десятки раз быть более эффективным (быстрым) по сравнению с аналогичным по стоимости сервером где для вычислений используется CPU (всем хорошо знакомый центральный процессор). Это достигается за счет особенностей архитектуры GPU, которая быстрее справляется с расчетами.
Для выполнения примеров описанных далее, мы приобрели на несколько дней такой сервер:
- SSD диск 150 ГБ
- ОЗУ 32 ГБ
- Процессор Tesla V100 16 Gb с 4-мя ядрами
На машину нам установили Ubuntu 18.04.
Устанавливаем окружение
Теперь установим на сервер все необходимое для работы. Поскольку наша статья в первую очередь для начинающих, буду рассказывать в ней о некоторых моментах, которые пригодятся именно им.
Очень много работы при настройке среды выполняется через командную строку. Большинство из пользователей в качестве рабочей ОС используют Windows. Стандартная консоль в этой ОС оставляет желать лучшего. Поэтому мы будем использовать удобный инструмент Cmder/. Скачиваем mini версию и запускаем Cmder.exe. Далее необходимо подключится к серверу по протоколу SSH:
Вместо server-ip-or-hostname указываете IP адрес или DNS имя вашего сервера. Далее вводим пароль и при успешном подключении мы должны получить примерно такое сообщение.
Основным языком для разработки ML моделей является Python. А наиболее популярной платформой для его использование по Linux является Anaconda.
Установим ее на наш сервер.
Начинаем с обновления локального менеджера пакетов:
Устанавливаем curl (служебная программа командной строки):
Скачиваем последнюю версию Anaconda Distribution:
В процессе установки необходимо будет подтвердить лицензионное соглашение. При успешной установке вы должны будете увидеть это:
Для разработки ML моделей сейчас создано множество фреймворков, мы работаем с наиболее популярными: PyTorch и Tensorflow.
Использование фреймворка позволяет увеличить скорость разработки и использовать уже готовые инструменты для стандартных задач.
В этом примере будем работать с PyTorch. Установим его:
Теперь нам необходимо запустить Jupyter Notebook — популярный у ML специалистов инструмент разработки. Он позволяет писать код и сразу видеть результаты его выполнения. Jupyter Notebook входит в состав Anaconda и уже установлен на нашем сервере. Необходимо подключится к нему из нашей настольной системе.
Для этого мы сначала запустим Jupyter на сервере указав порт 8080:
Далее открыв в нашей консоли Cmder еще одну вкладку (верхнее меню — New console dialog) подключимся по порту 8080 к серверу через SSH:
При вводе первой команды нам будет предложены ссылки для открытия Jupyter в нашем браузере:
Воспользуемся ссылкой для localhost:8080. Скопируйте полный путь и вставьте в адресную строку локального браузера вашего ПК. Откроется Jupyter Notebook.
Создадим новый ноутбук: New — Notebook — Python 3.
Проверим корректную работу всех компонентов которые мы установили. Введем в Jupyter пример кода PyTorch и запустим выполнение (кнопка Run):
Результат должен быть примерно таким:
Если у вас аналогичный результат — значит мы все настроили правильно и можем приступать к разработке нейронной сети!
Создаем нейронную сеть
Будем создавать нейронную сеть для распознавания изображений. За основу возьмем данное руководство.
Для тренировки сети мы будем использовать общедоступный набор данных CIFAR10. У него есть классы: «самолет», «автомобиль», «птица», «кошка», «олень», «собака», «лягушка», «лошадь», «корабль», «грузовик». Изображения в CIFAR10 имеют размер 3x32x32, то есть 3-канальные цветные изображения размером 32×32 пикселей.
Для работы мы будем использовать созданный PyTorch пакет для работы с изображениями — torchvision.
Мы сделаем следующие шаги по порядку:
- Загрузка и нормализация наборов обучающих и тестовых данных
- Определение нейронной сети
- Тренировка сети на тренировочных данных
- Тестирование сети на тестовых данных
- Повторим тренировку и тестирование с использованием GPU
Весь приведенный ниже код мы будем выполнять в Jupyter Notebook.
Загрузка и нормализация CIFAR10
Скопируйте и выполните в Jupyter следующий код:
Ответ должен быть такой:
Выведем несколько тренировочных образов для проверки:
Определение нейронной сети
Рассмотрим сначала как работает нейронная сеть по распознаванию изображений. Это простая сеть прямой связи. Он принимает входные данные, пропускает их через несколько слоев один за другим, а затем, наконец, выдает выходные данные.
Создадим подобную сеть в нашей среде:
Определим так же функцию потерь и оптимизатор
Тренировка сети на тренировочных данных
Начинаем тренировку нашей нейронной сети. Обращаю внимание что после этого как вы запустите на выполнение этот код, нужно будет подождать некоторое время до завершения работы. У меня это заняло 5 мин. Для обучение сети нужно время.
Получим такой результат:
Сохраняем нашу обученную модель:
Тестирование сети на тестовых данных
Мы обучили сеть использую набор обучающих данных. Но нам нужно проверить, научилась ли сеть вообще чему-либо.
Мы проверим это, предсказав метку класса, которую выводит нейронная сеть, и проверив ее на предмет истинности. Если прогноз верен, мы добавляем образец в список правильных прогнозов.
Давайте покажем изображение из тестового набора:
Теперь попросим нейронную сеть сообщить нам что на этих картинках:
Результаты кажутся довольно хорошими: сеть определила правильно три картинки из четырех.
Давайте посмотрим, как сеть работает во всем наборе данных.
Похоже сеть что-то знает и работает. Если бы он определяла классы наугад, то точность бы была 10%.
Теперь посмотрим какие классы сеть определяет лучше:
Похоже что лучше всего сеть определяет автомобили и корабли: 71% точности.
Итак сеть работает. Теперь попробуем перенести ее работу на графический процессор (GPU) и посмотри что поменяется.
Тренировка нейронной сети на GPU
Сначала объясню коротко что такое CUDA. CUDA (Compute Unified Device Architecture) — платформа параллельных вычислений, разработанная NVIDIA, для общих вычислений на графических процессорах (GPU). С помощью CUDA разработчики могут значительно ускорить вычислительные приложения, используя возможности графических процессоров. На нашем сервере, который мы приобрели, данная платформа уже установлена.
Давайте сначала определим наше GPU как первое видимое устройство cuda.
Отправляем сеть на GPU:
Так же нам придется отправлять входы и цели на каждом шаге и в GPU:
Запустим повторное обучение сети уже на GPU:
В этот раз обучение сети продолжалось по времени около 3 минут. Напомним что тот же этап на обычном процессоре длился 5 минут. Разница не существенная, это происходит потому что наша сеть не такая большая. При использовании больших массивов для обучения разница между скоростью работы GPU и традиционного процессора буде возрастать.
На этом кажется все. Что нам удалось сделать:
- Мы рассмотрели что такое GPU и выбрали сервер на котором он установлен;
- Мы настроили программное окружение для создания нейронной сети;
- Мы создали нейронную сеть для распознавание изображений и обучили ее;
- Мы повторили обучение сети с использованием GPU и получили прирост в скорости.
Буду рад ответить на вопросы в комментариях.
Источник
Что делать, если вы хотите изучать ИИ, но не шарите в математике? Часть третья. Собираем и настраиваем систему
Это третья статья из цикла, посвящённого изучению ИИ и всего, что с ним связано. В первой части мы обсуждали теорию, во второй — готовились к решению практических заданий. Сегодня же мы займёмся сборкой идеального компьютера для машинного обучения и настройкой системы.
Итак, займёмся подбором комплектующих. Я предложу три варианта: бюджетный, средний и навороченный.
Но сперва — экспресс-вариант
Если вы не хотите собирать новый компьютер, можно просто обновить старый! Купите видеокарту Titan X или GTX 1080 (а недавно Nvidia анонсировала и более мощную GTX 1080 Ti) и установите VMware Workstation или любую другую виртуальную машину с поддержкой видеоускорителей. В качестве альтернативы можно поставить основной системой Linux, а Windows установить на виртуальную машину — таким образом вы получите максимальную производительность для машинного обучения.
Потом установите необходимые фреймворки, о которых мы поговорим во втором разделе этой статьи, и вы получите готовую систему, причём весьма дешёвую.
Подбор комплектующих
Я буду помечать дорогие и бюджетные варианты следующим образом:
- ДнП (Деньги — не проблема) = наилучший вариант;
- ЗПБ (Зачем платить больше?) = оптимальный вариант;
- ДиС (Дёшево и сердито) = бюджетный вариант.
Видеокарта — всему голова
Центральный процессор — больше не самая важная часть компьютера. Для навороченных игровых систем нужны мощные процессоры, но не для машинного обучения — там роль Intel исполняет Nvidia.
Хотя карты AMD и зарекомендовали себя в майнинге криптовалюты, до ИИ они ещё не доросли. Скоро это изменится, но пока Nvidia на коне. Но не стоит сбрасывать Intel со счетов. Она приобрела компанию Nervana Systems и собирается начать выпускать специализированные чипы для машинного обучения уже в этом году.
Начнём с ДнП. Безоговорчный лидер — это Titan X. Ему просто нет равных.
23 августа – 31 октября, Онлайн, Беcплатно
В ней установлено 3584 ядер CUDA на частоте 1531 МГц и 12 ГБ видеопамяти GDDR5X с пропускной способностью 10 Гб/с.
Для машинного обучения важно количество ядер и объём памяти. По сути, алгоритмы машинного обучения — это всего лишь куча линейной алгебры. Представьте огромную таблицу Excel. Простой 4- или 8-ядерный процессор Intel просто не справится с таким объёмом данных.
Перемещение данных из памяти и в неё очень сильно ограничивает вычислительный процесс, поэтому чем больше памяти есть на карте, тем лучше. Поэтому Titan X и является лучшей.
Жаль, но на официальном сайте можно купить лишь 2 карты. Но для нас деньги — не проблема, поэтому ещё две мы возьмём где-нибудь ещё. Да, это 4-way SLI! Обойдётся он вам примерно в 360 тысяч (на момент написания статьи — прим. перев.), но это львиная доля затрат.
Любые бенчмарки предупредят вас, что SLI из более чем 2 карт не даст значительного прироста, но нам же не в игрушки играть (ладно, будем честны, не только в игрушки играть)! Для работы с ИИ нужно использовать максимально возможное количество видеокарт, поэтому четыре — это вовсе не предел. Заметьте, что вам не нужен мостик для SLI, если вы не планируете использовать систему для игр. Максимум, что будет связано с графикой — это построение графиков в matplotlib.
Теперь поговорим о ЗПБ. Вам подойдёт карта GeForce GTX 1080 Founders Edition. В ней всего лишь 2560 ядер CUDA, гораздо меньше, чем в Titan X, но она и стоит в два раза дешевле, 46 тысяч рублей. Памяти в ней тоже меньше, 8 ГБ вместо 12. Ещё один неплохой ДиС-вариант — это GeForce GTX 1070. Она может похвастаться 1920 ядрами CUDA и приемлемой ценой — 32 тысячи рублей. Таким образом, SLI из 4 карт обойдётся вам без малого в 130 тысяч рублей.
Конечно, можно обойтись двумя или тремя картами. По-хорошему, вам хватит и одной.
Итак, давайте рассмотрим оптимальные варианты:
- 3 x Titan X = 10 752 ядер CUDA, 36 ГБ видеопамяти = 270 тыс. руб.
- 2 x Titan X = 7167 ядер CUDA, 24 ГБ видеопамяти = 180 тыс. руб.
- 3 x GTX 1080 = 7680 ядер CUDA, 24 ГБ видеопамяти = 138 тыс. руб.
- 2 x GTX 1080 = 5120 ядер CUDA, 16 ГБ видеопамяти = 92 тыс. руб.
- 3 x GTX 1070 = 5760 ядер CUDA, 24 ГБ видеопамяти = 96 тыс. руб.
- 2 x GTX 1070 = 3840 ядер CUDA, 16 ГБ видеопамяти = 62 тыс. руб.
Оптимальный вариант — три GTX 1080. В два раза дешевле, чем «титаны» и всего на 3072 ядра меньше. Для своей системы я выбрал именно его.
Наконец, ДиС-вариант: GTX 1060. 6 ГБ видеопамяти и 1280 ядер CUDA за 17 тысяч рублей — это лучший бюджетный вариант.
Хранилище данных
Вам понадобится SSD, особенно если вы будете работать со свёрточными нейронными сетями и обрабатывать много изображений. Samsung 850 EVO ёмкостью 1 ТБ — это ДнП-вариант. Кроме того, за последний год цены на SSD значительно снизились, поэтому такая покупка не сильно ударит по кошельку. На момент написания статьи эта модель стоит порядка 20 тысяч рублей.
ЗПБ-вариант — это SSD той же модели, но на 250 ГБ. Стоит он примерно 6 тысяч.
Вам также понадобится HDD для хранения наборов данных. Они могут быть очень большими, поэтому стоит взять диск ёмкостью не меньше 4 ТБ, производитель не так уж и важен. Стоить он будет порядка 10 тысяч.
В качестве ДиС-альтернативы можно взять SSD от SanDisk на 240 ГБ за 4 тысячи рублей и HDD на 1 ТБ, но я считаю, что лишней памяти не бывает.
Оперативная память
Я советую брать не менее 16 ГБ оперативной памяти типа DDR4. Многие говорят, что оперативной памяти должно быть в 2 раза больше, чем видеопамяти, но 16 ГБ вам должно хватить. Я бы посоветовал модель Corsair Vengeance DDR4–3000, набор из двух планок по 8 ГБ будет стоить примерно 10 тысяч рублей.
Материнская плата
Поскольку мы хотим поместить в наш корпус 4 видеокарты, наш выбор очень невелик. Лучшим вариантом будет материнская плата MSI Extreme Gaming X99A SLI Plus. Также подойдёт ASUS X99 Deluxe II.
Если же вы используете меньше 4 карт, вариантов становится гораздо больше. В материнских платах главное — стабильность. В этом я убедился, когда собирал системы для майнинга криптовалюты. Gigabyte разработала отличную линейку надёжных материнских плат. Модель X99 Ultra Gaming оптимальна и стоит порядка 20 тысяч.
Корпус
Cooler Master Cosmos II — это ультимативный корпус форм-фактора EATX. Его стильный внешний вид отлично дополнит вашу систему.
Тем, кому нужен корпус поменьше, подойдёт Cooler Master Maker 5T.
Я никогда не видел смысла в покупке дешёвого корпуса. Тем не менее, в продаже есть множество достойных бюджетных вариантов, и перечислять их здесь нет смысла.
Процессор
Вашей машине для машинного обучения не нужен мощный процессор. Большинство приложений многопоточны лишь на графическом процессоре, поэтому разоряться на процессор не стоит.
Поэтому вам стоит купить процессор с наибольшей тактовой частотой, т.е. i7-6700K с частотой 4 ГГц. Да, может показаться, что это перебор, но в последнее время цена на него только падает, так что почему бы и нет?
ЗПБ-альтернативы здесь нет. i5 с частотой 3,5 ГГц стоит немногим дешевле, так какая разница?
ДиС-вариант здесь — двухядерный i3-6100 c частотой 3.7 ГГц, стоит он порядка 7 тысяч.
Блок питания
Блок питания EVGA Modular 1600 Supernova G2 — это лучший вариант для сборки с 4 видеокартами. Он обойдётся вам где-то в 18 тысяч.
Titan X потребляет порядка 250 ватт — вот уже тысяча, и на всё остальное остаётся не так уж и много, а БП лучше брать с запасом.
Если вы используете меньше видеокарт, вам подойдёт модель на 1300 Вт. ДиС-альтернатива — модель на 750 Вт.
Настройка системы
Теперь, когда мы закончили с железом, займёмся настройкой софта.
У вас есть три варианта:
- Docker-контейнер;
- Виртуальная машина;
- Чистая установка.
Docker
Если вы хотите пойти по этому пути, то вам стоит начать с официального проекта Nvidia-Docker. Однако вам всё равно придётся ставить кучу фреймворков и библиотек поверх этого образа.
Конечно, вы можете поставить и контейнер со всем необходимым для машинного обучения, например, такой. К сожалению, в нём есть некоторые пока не решённые проблемы, да и на Dockerhub он не поместится, поэтому времени на ручную настройку вам придётся потратить немало.
Виртуальная машина
Как я и сказал в начале статьи, вы можете просто обновить железо вашего игрового компьютера, поставить VMware Workstation Pro, поддерживающую работу с графическими процессорами, и начать работать. Это самый дешёвый вариант, да и весьма удобный в использовании.
Чистая установка
В результате я выбрал именно этот вариант. Да, немного олдскульно, но поскольку я давно работаю сисадмином, то решил сделать всё вручную — таким образом можно максимально контролировать систему.
Сперва обсудим несколько деталей, сваязанных с ПО. Вы поймёте, что большая часть вычислений производится при помощи Python. В дальнейшем это может поменяться, но пока что это основной язык. Популярны также R и Scala, их мы тоже рассмотрим.
Вот список всех основных пакетов, которые мы установим:
Языки
- Python 2.x;
- Anaconda (и Python 3.6) — высокопроизводительный дистрибутив Python, содержащий более 100 популярных пакетов Python, R и Scala;
- R — язык и среда для статистических расчётов;
- Scala — язык, похожий на Java, но гораздо более производительный.
Драйверы и API
- драйверы Nvidia;
- CUDA — проприетарная платформа для параллельных вычислений и модель API от Nvidia;
- cuDNN — библиотека для графических процессоров Nvidia для работы с развёртывающими нейронными сетями.
Приложения-помощники
- Jupyter — отличное веб-приложение, которое позволит делиться документацией и кодом.
Фреймворки / библиотеки
- TensorFlow — открытый фреймворк Google для машинного обучения, на котором, например, работает Google Translate;
- Theano — популярный фреймворк для машинного обучения;
- Caffe — ещё один фреймворк;
- Torch — фреймворк для научных вычислений, использующий графические процессоры;
- MXNET — масштабируемая система для машинного обучения, созданная Amazon и несколькими университетами.
Высокоуровневые библиотеки
- Keras — высокоуровневая библиотека для работы с нейронными сетями, запускающаяся поверх TensorFlow или Theano;
- Lasagne — лёгкая библиотека для создания и обучения нейронных сетей.
Python-библиотеки
Написано огромное количество библиотек для разного рода научной деятельности, мы поставим самые нужные:
- Pip = менеджер пакетов для Python;
- Pandas = высокопроизводительная библиотека для анализа данных;
- Scikit-learn = популярная мощная библиотека для машинного обучения;
- NumPy = численный Python;
- Matplotlib = библиотека для визуализации;
- Scipy = математические и научные расчёты;
- IPython = интерактивный Python;
- Scrappy = фреймворк для веб-скрапинга;
- NLTK = набор инструментов для работы с естественными языками;
- Pattern = библиотека для веб-майнинга;
- Seaborn = статистические визуализации;
- OpenCV = библиотека для работы с компьютерным зрением;
- Rpy2 = интерфейс для R;
- Py-graphviz = статистические графики;
- OpenBLAS = линейная алгебра.
Настройка Linux-системы
Я рекомендую поставить последнюю версию Ubuntu LTS (16.04 на момент написания статьи). Запишите её на флешку при помощи программы Rufus и установите в UEFI-режиме.
Первый запуск
Запустив систему, вы увидите чёрный экран. Некоторые из драйверов просто не обновлены. Чтобы это исправить, сделайте следующее.
Когда компьютер загрузится, откройте терминал:
Скачайте последние драйвера и перезагрузите систему:
- В терминале залогиньтесь как суперпользователь;
- Выполните sudo apt-get purge nvidia-* ;
- Выполните sudo add-apt-repository ppa:graphics-drivers/ppa и sudo apt-get update ;
- Выполните sudo apt-get install nvidia-375 ;
- После перезагрузки проблемы с графикой должны исчезнуть.
Обновление системы
Откройте терминал и введите следующее:
Скачайте CUDA 8 с сайта Nvidia. Перейдите в каталог загрузок и установите CUDA:
Добавьте CUDA в список переменных окружения:
Проверьте версию CUDA:
Убедитесь, что всё установилось корректно. Сперва установите образцы CUDA:
Обратите внимание, что +1 означает количество графических процессоров, поэтому число можно увеличить, ускорив тем самым время установки и компиляции.
После этого запустите deviceQuery и убедитесь, что все графические тесты успешно проходятся:
cuDNN
cuDNN — это библиотека для работы с развёртывающими нейронными сетями с поддержкой графических ускорителей. К сожалению, её нельзя просто скачать с репозитория. Вам придётся зарегистрироваться в программе Nvidia и подождать пару дней, чтобы получить доступ. Скачивайте 4 и 5 версии. Я ставил пятую.
Прежде чем ставить все другие фреймворки, дождитесь предоставления вам доступа к этой библиотеке — другие зависят от неё и могут не работать.
Источник