<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>ЭФФЕКТИВНОЕ ПРИМЕНЕНИЕ ОБЛАЧНЫХ РЕСУРСОВ ПРИ ОБУЧЕНИИ И ИСПОЛЬЗОВАНИИ ГЛУБОКИХ НЕЙРОННЫХ СЕТЕЙ*</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="editor">
          <string-name>Orenburg State University, Orenburg, Russia</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>, Polezhaev P.N., Shukhman A.E.</institution>
          ,
          <addr-line>Porokhnenko Yu.S., Chernova E.V.</addr-line>
          ,
          <country>Ocheredko O.O</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ushakov Yu.A</institution>
        </aff>
      </contrib-group>
      <fpage>157</fpage>
      <lpage>166</lpage>
      <abstract>
        <p>Нейронные сети имеют все большее значение в науке и технике. Построением и обучением нейронных сетей занимаются многие научные коллективы и инженеры. Для обеспечения эффективного вычисления нейронных сетей многие ученые используют облачные ресурсы с почасовой оплатой, выделенные GPU ускорители. Данная работа посвящена исследованию эффективности обучения нейронных сетей на GPU ускорителях и обычных серверных процессорах. Проведен обзор всех популярных фреймворков для создания и выполнения расчетов на нейронных сетях, рассмотрены их преимущества и недостатки, а также особенности работы с GPU и в кластерных режимах. Рассмотрены преимущества использования контейнеризации при GPU расчетах на облачных системах с почасовой оплатой, возможность существенно упростить первоначальную настройку и свести к минимуму рассогласование версий драйверов и контейнеров. Также рассмотрено влияния контейнеризации на производительность обучения. Проведено планирование эксперимента, описаны способы запуска вычислений и сбора статистики как внутри контейнеров, так и на хосте. Рассмотрены различные стоимостные показатели прогона нейронной сети, показано ускорение при использовании нескольких GPU, совместное использование GPU и CPU, исследована различная потребность в оперативной памяти для CPU и GPU на одних и тех же моделях и данных. Показана возможность эффективного обучения моделей только на процессорах и завышенные стоимостные характеристики использования GPU ускорителей.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Введение
starting computations and collecting statistics both inside the containers and on the host are
described. Different cost parameters of the neural network execution are considered. The experiment
shows the acceleration of neural network training when several GPUs and/or CPUs are used. The
different need for RAM for CPUs and GPUs is investigated on the same models and data. The
opportunity of the efficient model training only on CPUs and overestimated cost characteristics of the
use of GPU accelerators are shown.</p>
      <p>Deep neural networks; cloud computing; containers; virtual machines; parallel computing.</p>
      <p>Распространение нейронных сетей в науке и технике ыужшело дазваноравмки чисто академического
интереса. Они используются практически во всех областях информационных технологий, нач
заменять юристов и техническую поддержку, позволили создать беспилотный транспорт
автоматизировать множество различных процесНсов. несколько препятствий на пути дальнейшего
развития и распространения нейронных сетей не дают применять и изучать –иэхто,пов-соеместно
первых, высокие требования к вычислительным ресурсам, необходимым для активно используе
сейчас глубоких нейроынхн сетей, -ввтоорых – высокий порог вхождения в технологии.</p>
      <p>
        Фреймворки для вычислений над графами представляют нейронные сети в виде ориентирова
графов, в которых листовые вершины представляют входы/выходы или параметры сети, остал
вершины – векторные операции, такие как матричное сложение/умножение или свертка. Самы
популярными символьными фреймворками для реализации нейронных сетей в настоящий мом
являются Google TenFsloorw, Theano, Microsoft CNTK, MXNET, Torch, VELES, Neon [
        <xref ref-type="bibr" rid="ref1 ref12">1</xref>
        ]. Порог вхиояждепнри
использовании довольно выс–онкеобходимо уметь писать на языке программирования для фреймворка,
устанавливать драйверы и библиотеки в Linux, совмещать навыки системного администратор
разработчика (devops). Microsoft предлагает более адаптыиреованкн широкому использованию
продукты, но также требует применения собственного инструментария. Для понижения пор
вхождения были разработаны фреймворки для высокоуровневой разработки программного обеспечен
для нейронных сетей, которое использует гоAтPоIвыеи библиотеки, реализующие большинство
функций обработки входных данных, развертывания и обуч–енKиeяras,сLеaтsиagne, Caffe.
Анализ существующих фреймворков для нейронных сетей
Наличие предварительно обученных моделей является большим плюсом библиотеки, поскольку
можно применять в своих приложениях, экономя время и ресурсы. адЧатпотбиыровлаутчьшемодель к
новым данным, можно провести дополнительную нас–трообйукчуить нейронную сеть с помощью
собственного набора данных.
      </p>
      <p>В сравнительной таблице 1 также указаны платформы, на которых библиотеки способны рабо
их программные интерйфсые (API).</p>
      <p>Таблица 1 – Сравнение библиотек для нейронных сетей
Название
ПО</p>
    </sec>
    <sec id="sec-2">
      <title>TensorFlow</title>
    </sec>
    <sec id="sec-3">
      <title>Theano</title>
    </sec>
    <sec id="sec-4">
      <title>Lasagne</title>
    </sec>
    <sec id="sec-5">
      <title>CNTK</title>
    </sec>
    <sec id="sec-6">
      <title>Keras</title>
    </sec>
    <sec id="sec-7">
      <title>MXNET Deeplearnin g4j Caffe</title>
      <p>
        Самыми быстрыми среди рассмотренных фреймворков являются Theano и Torch, использую
малоизвестный язык Lua. Однако T–heнaиnзoкоуровневый фреймворк и больше рассматривается как
исследовательская платформа, а не библиотека глубуочкеонгиоя о[
        <xref ref-type="bibr" rid="ref15 ref15 ref4 ref4">4</xref>
        ]. Theano часто используется вместе
с библиотеками, имеющими более высокий уровень абстракции, такими как Keras и Lasagne.
      </p>
      <p>
        Caffe хорошо известен-заиз своего набора предобученных моделей нейронных сетей Model Zo
который могут использовать идеруг фреймворки и библиотеки с помощью дополнительных
инструментов [
        <xref ref-type="bibr" rid="ref16 ref5">5</xref>
        ]. Однако сам фреймворк слишком громоздкий для больших сетей, он не так
работы с рекуррентными сетями и медленно развивается.
      </p>
      <p>
        Microsoft Cognitive Toolkit, также известный Kк,акнеCNгTодится для коммерческого использования,
так как имеет разрешительную лицензию, однако он быстрее, чем TensorFlow [
        <xref ref-type="bibr" rid="ref17 ref17 ref6 ref6">6</xref>
        ].
      </p>
      <p>
        MXNET – отличное решение для любителей языка R, единственная платформа, которая поддержив
все его функции и, кроме тогое,т овбыласдоакой производительностью и эффективным использованием
памяти [
        <xref ref-type="bibr" rid="ref18 ref18 ref7 ref7">7</xref>
        ].
      </p>
      <p>
        Deeplearning4j создан для использования в -србеидзен,ес адаптирован для м-искервоисной
архитектуры, расширяется за счет Hadoop [
        <xref ref-type="bibr" rid="ref19 ref8">8</xref>
        ]. Может использовать обратное распростреанниение по в
(Backpropagation Through Time, BPTT) – основанную на градиентах технику тренировки определенных
типов рекуррентных нейронных сетей.
      </p>
      <p>В настоящий момент самой популярной считается библиотека TensorFlow, хотя она медленнее
Torch и Theano и не аикмоегеот бтольшого набора моделей, как Caffe. В отличие от любой д
архитектуры, TensorFlow имеет возможность делать частичные вычисления подграфа, то есть полу
выборки от общей нейронной сети, а затем ее обучение отдельно от остальннаозйывачеамстоие. Это так
Model Parallelization, которое используется для распределенного обучения.</p>
      <p>Таким образом, несмотря на преимущества прочих библиотек, для исследований в рамках
работы был выбран фреймворк TensorFlow, как надежный и развивающийосяобнпырйоекрта,бостпать
с разными типами нейронных сетей и поддерживающий параллельные вычисления с пом
графических процессоров, а также Keras в качестве высокоуровневого API для TensorFlow.</p>
      <p>Одним из наиболее динамично развивающихся фреймворков явля е.тсяОн Keмrоaжsет работать с
различными платформами низкого уровня, включая Tensorflow, CNTK, Theano, имеет поддержку ОС
Mac OS и Windows. Keras автоматизирует входную обработку изображений, подключение к внеш
хранилищам, обработку выходных данных.воеВнииос для новичков и инженеров, которые раньше не
занимались программированием, Keras является одним из самых простых, с огромным количес
примеров и готовых структур.</p>
      <p>В зависимости от используемого базового нейросетевого фреймворка Keras поотзавтоьляетс раб
Nvidia CUDA, AMD FireStream, другими ускорителями через OpenCL. Большинство облачных провай
предлагают ускорители на основе технологии CUDA. В силу вышеупомянутых причKиeнrasфвреймворк
сочетании TсensorFlow был выбран для настоящего оивсаслнеидя.</p>
      <p>
        Развертывание и настройка Keras на системах Windows предполагает ручную установку боль
количества стороннего ПО [
        <xref ref-type="bibr" rid="ref20 ref20 ref9 ref9">9</xref>
        ], внесение правок в конфигурационные файлы, располагаемые в разл
местах файловой системы. В Linux сама установка вяыппорлонщяеетс за счет пакетных менеджеров,
однако требуется установка проприетарных драйверов, требует знания некоторых особенностей сис
Linux [
        <xref ref-type="bibr" rid="ref10 ref10 ref21 ref21">10</xref>
        ].
Цель исследования
оплата;
tstartup- время запуска ОС;
tinstall - время, требуемое
tsum  tstartup  tinstall  tdata_load  tstart  tlearn  tverify  tsave_data  t poweroff
Эксперимент проводился с помощью услуг публичных про–ва1йCдlеoрuоdв, Azure, Google Cloud, у
которых заказывались виртуальные сервера нужной конфигурации с поGдPдUерижкойбез нее.
Эксперимент можно разделить на две стадии:
      </p>
      <p>1. Обучение нейронной сети на наборе данных с использованием только ресурсов процес
виртуальной машины или контейнеров, запущенных на виртуальной машине. Исследование проводил
при увеличении количества используеKмeыraхs вычислительных ядер от 214. до</p>
      <p>2. Обучение нейронной сети на наборе данных с использованием ресурсов пGрPоцUессоров и
виртуальной машины или контейнеров, запущенных на виртуальной машине.</p>
      <p>В обоих сценариях вычисления запускались как на процессоре виртуальной машины, так и
контейнера Docker. Во втором сценарии внутри контKеeйrнasерзаапускался с
использованиnемvidiadocker.</p>
      <p>Обучение производилось на изображениCяпх.омощью нейронной сети решалась задача по их
распознаванию – определения одного из 10 классов. Для этвойKeraцsелбиыла описана модель
сверточной нейронной сети для каждого набора данных. Было выбрано два набора данных.</p>
      <p>Первый. набор даннMыхNIST состоит из 70000 серых изображений 28х28 с рукописными цифрам
Всего 60000 тренировочных изображений и 1000в0ых теисзтоображений. Количество э–п1о2х. Для
устранения эффекта переобучения после третьего и четвертого слоев прDиrмopеoнuяtл-ась
регуляризация. Набор будет использованCPUдлряасчетов, так каGкPUвимеет время расчета меньшее,
чем время загрузки. Стрруактусети дMлNяIST:</p>
      <p>1. Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape= (img_rows, img_cols, 1)) – сверхточный
двумерный слой с 32 фильтрами, ядром свертки 3х3 и функциейU; активации ReL
2. Conv2D(64, (3, 3), activation='relu') – сверхточный вдумерный слой с 64 фильтрами, ядром свертки
3х3 и функцией активации ReLu;</p>
      <p>3. MaxPooling2D(pool_size=(2, 2)) – слой подвыборки для уменьшения размерности двумерной сети на
основе определения максимума по нейронам областей 2 х 2;
4. Dense(128, activation='relu') – слой полносвязной сети с 128 выходами и функцией акUт; ивации ReL
5. Dense(10, activation='softmax') – слой полносвязной сети с 10 выходами и функцией активац
Softmax.</p>
      <p>Первый слой нейронной сети имеет количество входов, соответствующее брраазжмеенриуй изо
обучающей выборки. У последнего пятого слоя 10 выходов, что соответствует 10 классам распозн
цифр. Первые два слоя сети осуществляют свертку изображения, составляя карты признаков, к
затем сжимаются на третьем слое и соединяютвсеяртонма счлеое в одну полносвязную сеть и
распределяются по классам четвертым и пятым слоем. Первые два слоя и четвертый исп
функцию активации RUe,L что позволяет адекватно выделять признаки изображений. Пятый сл
использует функциюSoftmax, котораябольше подходит для задач классификации. Обучение сети
производилось с использованием перекрестной энтропии в качестве функции потерь, оптимизатор А
Второй набоCрIFAR-10 состоит из 60000 цветных изображxе3н2ийс 3120 классами, 6000 изображений
на лкасс. Всего 50000 тренировочных изображений и 10000 тестовых изображений. Ко–л2и0ч0е.ство эпох
Для устранения эффекта переобучения после третьего и четвертого слоев Dпrрoиpмouеtн-ялась
регуляризация. Набор будет использованCPUдлияGPU расчетов. Струкутра сети дCлIяFAR-10:
1. Сверточный входной слой, с 32 фильтрами, ядром свертки 3х3 и функциUе;й активации ReL
2. Сверточный входной слой с 32 фильтрами, ядром свертки 3х3 и функциUе;й активации ReL
3. Слой подвыборки для уменьшения размерности дсвеутмиернноай основе определения максимума
по нейронам областей 2 х 24;
4. Сверточный входной слой, с 64 фильтрами, ядром свертки 3х3 и функциUе;й активации ReL
5. Сверточный входной слой, с 64 фильтрами, ядром свертки 3х3 и функциUе;й активации ReL
6. Слой пвоыдборки для уменьшения размерности двумерной сети на основе определения максим
по нейронам областей 2 х 24;
7. Сглаживающий слой;
8.Полносвязный уровень с 512 элементами и функцией актUи;вации ReL
9. Полносвязный уровень с 10 элементами и функццииияSofаtкMтaиxв. а
Для сбора статистики во время проведения эксперимента использовался dиstнaсtт,рукмоетнотрый
запускался после первого обучения нейронной сети со следующими параметрами:
dstat -cmdr —output &lt;output_file_name&gt;.cvs
Данные параметры позволяют споебчеить получение статистики использования процессора, памяти,
диска и запросов в-ввоыдваода и сохранить иcvхs-фвайл. Каждый эксперимент повторялся 10 раз,
полученные результаты усреднялись с использовEаxнcиeеlм.
Полученные результаты
Прогон первой сеириэкспериментов (рисунок 1) был произведен на сервере Dell R810 c проце
Intel Xeon c частотой 2.8 ГГц, с использованием виртуальной машины на гипервизоре VMware v
Виртуальной машине было выделено 8 Гб оперативной памяти и одтиск1и дSоSD2.4 ДDляoядcеkрe,r
прогонов использовалсdяocker-ce 17.05.
Прогон второй серии экспериментов (рисунок 2) был произведен на сервере платформы Mi
Azure на машинах серии NC c опмроцеInссteоlр Xeon-26E950v3 c частотой 2.6 ГГц, с использованием
виртуальной машины на гипервизоре Microsoft Azure. Виртуальной машине было выделено от 56
NC6) до 112(модель NC12) Гб оперативной памяти, от 1 до 12 ядер (все показатлельизя не измен
понизить объем ресурсов), от 1 до 2 виртуальных GPU Nvidia Tesla K80 (от 1/2 до 1 физич
K80), диски HDD. DДoлcяker прогонов использовалсяdocker-ce 17.05, дляGPU-Docker использовался
nvidia-docker 17.05. ДрайверыNVIDIA GRID для Tesla K80 версииR375 длCяUDA 2.0.</p>
      <p>Прогон третьей серии экспериментов было решено пGроoвoеgсleтиClouвd с помощью подключения
GPU к виртуальной машине с аналогичAнzыuмreи показателями, но по результаGтPаUм тестов все
показатели в рамках погрешности изимйересновпали для GP1U Tиesla2K80.</p>
      <p>Провайдер Amazon AWS предоставляет только одну фиксированную конфигурацию малого размера с
GPU Tesla K80 – 4 ядра, 16 Гб оперативной памTяeтsиla Kи80, 1 остальные конфигурации начинаются от
8 картGPU, отдельная оптала за потребленные ресурсы процессора и диAсmкaа.zonДрлеязультаты
расчета на одGиPнU также совпали по времеAнzиureс.
В результатеылб составлен сводный график результатов по времениMNпISрTо,гонпаоскольку на
одинаковом наборе лучше видна тенденция стоимости прогонов (рисунок 3).</p>
      <p>Для оценки затрат были использованы данные биллинга по серверам за время проведения
полученные отпровайдеров, все цены были представлены провайдерами в рублевом эквиваленте
время прогона тестов (рисунок 4).</p>
      <p>Из графика, показанного на рисунке 4, в,ихдонтоя, GPчUтои выигрывает в скорости прогона, на
итоговую стоимость прогона влияет в больешейстоиммерость аренды, которую провайдеры взымают за
время использования ускорителя.
Рисунок 3 – Сводный график времени прогона на наборе MNIST
Рисунок 4 – Сравнение стоимости прогона модели наборе MNIST: а) результаты на наборе MNIST; б) результаты на
наборе CIFAR-10
Если взять цену одного прогона за единицу измерения эффективности, то получится, с что опти
точки зрения зат,раитспользовать такое количество обычных процессоров, которое позволяет
максимально эффективно реализовать плаерлаилзм при минимальном времени. В данном случае, это
вариант с-128 ядрами процессора GPбUез.
Заключение</p>
      <p>В результате экспериментальных исследований эффективности обучения нейронных сетей
облачных ресурсах было выявлено:</p>
      <p>1. Использование контейнеризациDиocker при достаточном количестве вычислительных ядер
позволяет не ухудшить показатели производительности стоимости, при этом существенно упрощ
первоначальный запуск модели.</p>
      <p>2. Использование специализированных графических ускорителей не всегднано,опреасвлдиа речь
идет о научных исследованиях, в которых не критично время расчета. При снижении времени
2-4 раза (для 12 ядер на MNнIаSбTо)ре стоимость повышается в те-4 жреаза2, но при больших
ресурсоемких наборах стоимость наоборот, уменьяшадеотс 50%.</p>
      <p>3. Экономическая эффективность расчета тольCкPоU знанаижена в ряде источников, особенно для
небольших наборов и сетей, а производитеGльPнUо,стньаоборот, завышена (по официальным сведениям
производителя – быстрее в-108 раз).</p>
      <p>В целом, имеетнсяеобходимость в дальнейшем более детального изучения и профилирования
выполнения фреймворков нейронных сетеGйPU,на в контейнерDаoхcker, особенно при распределенных
вычислениях, где есть сильная зависимость от производительности сетевого соединения.
Благодарности
(проекты
стипендии
№1-747-560046, №1-607-01004 и №-0175-06071), Президента
для молодых ученых и аспира н-2т1о7в9.2(0С1П5.5).
Российской
Литература
ресурс] //</p>
      <p>обращения</p>
      <p>References
ресурс] //</p>
      <p>обращения
Об авторах:
Ушаков Юрий Александрович, кандидат технических наук, доцент кафедры</p>
      <p>наук, Оренбургский государственный универсиuтnеpтk,@mail.ru
Полежаев Петр Николаевич, преподаватель кафедры комперьнюотй безопасности и математического
обеспечения информационных систем, Оренбургский государственный университет,
newblackpit@mail.ru
Шухман Александр Евгеньевич, кандидат педагогических наук,
геометрии и компьютерных наук, Оренбургский
shukhman@gmail.com
Порохненко Юлия Сергеевна, студент специальности «Компьютерная безопасность», факультет
математики и информационнытхехнологий, Оренбургский государственный университет,
yulkins2@gmail.com
Чернова Екатерина Владимировна, студент специальности «Компьютерная безопасность», факультет
математики и информационных технологий, Оргескнибйур государственный университет,
katin_box@mail.ru
доцент, заведу юафщеидйры к
государственный университет,
Очередько Ольга Олеговна, студент специальности «Компьютерная безопасность», факультет
математики и информационных технологий, Оренбургский
государственныйситуенти,oвlеikрoo@yandex.ru
Note on the authors:</p>
    </sec>
    <sec id="sec-8">
      <title>Ushakov Yury A., Candidate of Engineering Sciences, Associate Professor at the Department of Geometry and</title>
    </sec>
    <sec id="sec-9">
      <title>Computer Science, Orenburg State University, unpk@mail.ru</title>
    </sec>
    <sec id="sec-10">
      <title>Polezhaev Petr N., Lecturer at the Department of Computer Security and Mathematical Maintenance of</title>
    </sec>
    <sec id="sec-11">
      <title>Information Systems, Orenburg State University, newblackpit@mail.ru</title>
    </sec>
    <sec id="sec-12">
      <title>Shukhman Aleksandr E., Candidate of Pedagogic Sciences, Associate Professor, Head of the Department of</title>
    </sec>
    <sec id="sec-13">
      <title>Geometry and Computer Science, Orenburg State University, shukhman@gmail.com</title>
      <p>Porokhnenko Yuliya S., Student of «Computeurritys»ec specialty, Faculty of Mathematics and Information</p>
    </sec>
    <sec id="sec-14">
      <title>Technologies, Orenburg State University, yulkins2@gmail.com</title>
      <p>Chernova Ekaterina V., Student of «Computer security» specialty, Faculty of Mathemamticastionand Infor</p>
    </sec>
    <sec id="sec-15">
      <title>Technologies, Orenburg State University, katin_box@mail.ru</title>
      <p>Ocheredko Olga O., Student of «Computer security» specialty, Faculty of Mathematics and</p>
    </sec>
    <sec id="sec-16">
      <title>Technologies, Orenburg State University, olik-oo@yandex.ru</title>
      <p>Inform</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Нейросетевое программное обеспечение [Электронный ресурс] // URL: http://bookflow.ru/n-pejrroogsreatmevmoenoeobespechenie
          <source>/ (дата обращения 11.09</source>
          .
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Медведев</surname>
            <given-names>В.С.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Потемкин</surname>
            <given-names>В</given-names>
          </string-name>
          .Г.
          <string-name>
            <surname>Нейронные сети M-AМT.L:</surname>
          </string-name>
          <article-title>ABДиа6л</article-title>
          . о-гМИФИ,
          <fpage>2002</fpage>
          -. 496 с.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Парубец</surname>
            <given-names>В.В.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Берестнева</surname>
            <given-names>О</given-names>
          </string-name>
          Г.,
          <source>Девятых Д.В. Применение технологии CUDA //Известия Томского политехнического университ-е2т0а.12. - Т</source>
          .
          <fpage>320</fpage>
          -. №.
          <fpage>5</fpage>
          -. C.
          <volume>121</volume>
          -
          <fpage>125</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bastien F</surname>
          </string-name>
          . et al.
          <article-title>Theano: new features and speed improvements</article-title>
          [Электронный ресурс] //arXiv preprint arXiv:
          <volume>1211</volume>
          .
          <fpage>5590</fpage>
          . -
          <lpage>2012</lpage>
          . - URL: https://arxiv.org/abs/1211.5590
          <source>(дата обращения 11.09</source>
          .
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Jia</surname>
            <given-names>Y.</given-names>
          </string-name>
          et al.
          <article-title>Caffe: Convolutional architecture for fast feature embedding //</article-title>
          <source>Proceedings of the 22nd ACM international conference on Multimedia. - ACM</source>
          ,
          <year>2014</year>
          . -
          <fpage>С</fpage>
          .
          <fpage>675</fpage>
          -
          <lpage>678</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Reasons to Switch from TensorFlow to CNTK [Электронный ресурс] //URL: https://docs.microsoft.com/en-us/cognitivetoolkit/reasons-to
          <article-title>-switch-from-tensorflow-to-cntk (дата обращения</article-title>
          :
          <volume>23</volume>
          .
          <fpage>06</fpage>
          .
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Chen</surname>
            <given-names>T.</given-names>
          </string-name>
          et al.
          <article-title>Mxnet: A flexible and efficient machine learning library for heterogeneous distributed systems</article-title>
          [Электронный ресурс] // arXiv preprint arXiv:
          <volume>1512</volume>
          .
          <fpage>01274</fpage>
          . -
          <lpage>2015</lpage>
          . - URL: https://arxiv.org/abs/1512.01274 (дата обращения:
          <volume>22</volume>
          .
          <fpage>06</fpage>
          .
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. Deep Learning for Java [Электронный ресурс] //URL: https://deeplearning4j.org (дата обращения:
          <volume>22</volume>
          .
          <fpage>06</fpage>
          .
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Huerta</surname>
            <given-names>I. Installing</given-names>
          </string-name>
          <string-name>
            <surname>Keras</surname>
          </string-name>
          ,
          <article-title>Theano and TensorFlow with GPU on Windows 8.1 and 10 in less than 4 hours</article-title>
          [Электронный ресурс] // URL: https://sites.google.com/site/ivanhuertacasado/installing-keras
          <article-title>-theano-tensorflow-with-gpu-windows (дата обращения 11</article-title>
          .09.
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Crosson</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Installing</surname>
            <given-names>Nvidia</given-names>
          </string-name>
          , Cuda, CuDNN, TensorFlow and Keras [Электронный ресурс] // URL: https://medium.com/@acrosson/installing-nvidia
          <article-title>-cuda-cudnn-tensorflow-and-</article-title>
          <string-name>
            <surname>keras-</surname>
          </string-name>
          69bbf33dce8a
          <source>(дата обращения 11.09</source>
          .
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Jamie</given-names>
            <surname>Hanlon</surname>
          </string-name>
          .
          <article-title>Why is so much memory needed for deep neural networks? [Электронный URL: https://www.graphcore.ai/posts/why-is-so-much-memory-needed-for-deep-neural-networks (дата 11</article-title>
          .09.
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          1. Nejrosetevoe programmnoe obespechenie [Электронный ресурс] // URL: http://bookflow.ru/nejrosetevoe-programmnoeobespechenie
          <source>/ (дата обращения 11.09</source>
          .
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          2.
          <string-name>
            <surname>Medvedev</surname>
            <given-names>V.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Potemkin</surname>
            <given-names>V.G.</given-names>
          </string-name>
          <article-title>Nejronnye seti MATLAB 6</article-title>
          . - M.:
          <string-name>
            <surname>Dialog-MIFI</surname>
          </string-name>
          ,
          <year>2002</year>
          . - 496 p.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          3.
          <string-name>
            <surname>Parubec</surname>
            <given-names>V.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berestneva</surname>
            <given-names>O.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devjatyh D</surname>
          </string-name>
          .V.
          <article-title>Primenenie tehnologii CUDA dlja uskorenija vychislenij v nejronnyh setjah //Izvestija Tomskogo politehnicheskogo universiteta</article-title>
          .
          <source>- 2012</source>
          . - Vol.
          <volume>320</volume>
          . - No. 5. - PP.
          <fpage>121</fpage>
          -
          <lpage>125</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bastien F</surname>
          </string-name>
          . et al.
          <article-title>Theano: new features and speed improvements</article-title>
          [Электронный ресурс] //arXiv preprint arXiv:
          <volume>1211</volume>
          .
          <fpage>5590</fpage>
          . -
          <lpage>2012</lpage>
          . - URL: https://arxiv.org/abs/1211.5590
          <source>(дата обращения 11.09</source>
          .
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          5.
          <string-name>
            <surname>Jia</surname>
            <given-names>Y.</given-names>
          </string-name>
          et al.
          <article-title>Caffe: Convolutional architecture for fast feature embedding //</article-title>
          <source>Proceedings of the 22nd ACM international conference on Multimedia. - ACM</source>
          ,
          <year>2014</year>
          . - PP.
          <fpage>675</fpage>
          -
          <lpage>678</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          6. Reasons to Switch from TensorFlow to CNTK [Электронный ресурс] //URL: https://docs.microsoft.com/en-us/cognitivetoolkit/reasons-to
          <article-title>-switch-from-tensorflow-to-cntk (дата обращения</article-title>
          :
          <volume>23</volume>
          .
          <fpage>06</fpage>
          .
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          7.
          <string-name>
            <surname>Chen</surname>
            <given-names>T.</given-names>
          </string-name>
          et al.
          <article-title>Mxnet: A flexible and efficient machine learning library for heterogeneous distributed systems</article-title>
          [Электронный ресурс] // arXiv preprint arXiv:
          <volume>1512</volume>
          .
          <fpage>01274</fpage>
          . -
          <lpage>2015</lpage>
          . - URL: https://arxiv.org/abs/1512.01274 (дата обращения:
          <volume>22</volume>
          .
          <fpage>06</fpage>
          .
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          8.
          <article-title>Deep Learning for Java тр</article-title>
          [Эолненкый ресурс] //URL: https://deeplearning4j.org (дата обращения:
          <volume>22</volume>
          .
          <fpage>06</fpage>
          .
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          9.
          <string-name>
            <surname>Huerta</surname>
            <given-names>I. Installing</given-names>
          </string-name>
          <string-name>
            <surname>Keras</surname>
          </string-name>
          ,
          <article-title>Theano and TensorFlow with GPU on Windows 8.1 and 10 in less than 4 hours</article-title>
          [Электронный ресурс] // URL: https://sites.google.com/site/ivanhuertacasado/installing-keras
          <article-title>-theano-tensorflow-with-gpu-windows (дата обращения 11</article-title>
          .09.
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          10.
          <string-name>
            <surname>Crosson</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Installing</surname>
            <given-names>Nvidia</given-names>
          </string-name>
          , Cuda, CuDNN, TensorFlow and Keras [Электронный ресурс] // URL: https://medium.com/@acrosson/installing-nvidia
          <article-title>-cuda-cudnn-tensorflow-and-</article-title>
          <string-name>
            <surname>keras-</surname>
          </string-name>
          69bbf33dce8a
          <source>(дата обращения 11.09</source>
          .
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Jamie</given-names>
            <surname>Hanlon</surname>
          </string-name>
          .
          <article-title>Why is so much memory needed for deep neural networks? [Электронный URL: https://www.graphcore.ai/posts/why-is-so-much-memory-needed-for-deep-neural-networks (дата 11</article-title>
          .09.
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>