Другое

Нейронная сеть TensorFlow для "чайников": как установить и пользоваться

Lorem ipsum dolor

Нейронная сеть TensorFlow, при всей ее мощи, доступна даже для "чайников". То есть даже с минимальным опытом в программировании приложений на основе нейронной сети, этот инструмент можно использовать в собственной работе. Уровень использования TensorFlow напрямую зависит от профессиональности программиста. Сегодня мы покажем, как выглядит нейронная сеть TensorFlow для "чайников".

TensorFlow — это библиотека с открытым исходным кодом для обучения нейронной сети. Ее разработали программисты Google для внутренних нужд компании. Однако вскоре библиотеку открыли для всех желающих. Тем самым Гугл развивает идею нейронной сети и помогает внедрять ее в приложения разработчиков разного профессионального уровня.

Библиотека TensorFlow доступна как в облачном решении, так и в стационарном. То есть ею можно воспользоваться «дистанционно», либо инсталлировать на собственное устройство. Эта библиотека написана на Python, однако подходит для приложений, разрабатываемых не только на Python, но и на Java, Go и С. Часто применяемый язык программирования нейронной сети — это Python. Поэтому сегодня мы поговорим о совместной работе TensorFlow и Python.

Библиотека TensorFlow для "чайников"

Библиотека TensorFlow доступна в облаке. В принципе, все вычислительные процессы нейронной сети также происходят в облаке. На локальный компьютер эту библиотеку можно установить, однако для этого нужен соответствующий компьютер, так как вычисления нейросети дадут нагрузку на процессор и видеокарту.

Подключение TensorFlow

Подключение TensorFlow происходит разными способами. Вот несколько из них:

  1. Подключить через «virtualenv» или «Docker». Этот способ подходит, когда вы пользуйтесь возможностями контейнерной разработки и хотите инсталлировать TensorFlow в отдельный контейнер.

  2. Подключить через Anaconda. Anaconda — это популярный дистрибутив Питона, который часто применяется для написания приложений, использующих нейронную сеть. Внутри Anaconda содержится определенное количество специализированных библиотек, в том числе и TensorFlow. 

  3. Подключить с помощью «pip». Установщик «pip» в Pyhon  используется по умолчанию, поэтому это самый популярный и доступный способ подключить TensorFlow.

  4. Подключить через Git. Это более профессиональный способ подключения TensorFlow, поэтому не очень подходит для "чайников".

Для "чайников" идеально подходит способ подключения TensorFlow через «pip» или «virtualenv». Для того чтобы подключить TensorFlow через «pip» нужно воспользоваться следующими командами:

#для распределения нагрузки на процессор

 

pip instal tensorflow    #для Питона версии 2.7

pip3 install tensorflow  #для Питона версии 3.0 и выше

 

#для распределения нагрузки на видеокарту

 

pip install tensorflow-gpu   #для Питона версии 2.7

pip install tensorflow-gpu   #для Питона версии 3.0 и выше


Чтобы инсталлировать TensorFlow в отдельном контейнере, у вас на компьютере должен быть установлен Docer. Если он установлен, тогда можно подключить TensorFlow через «virtualenv». Для этого воспользуйтесь следующей командой:

 virtualenv --system-site-packages ~/tensorflow

source ~/tensorflow/bin/activate

 

При помощи этой команды создается и активируется новая среда, где будет работать  TensorFlow.

TensorFlow для "чайников": компоненты библиотеки

Библиотека TensorFlow доступна как для "чайников", так и для профессиональных программистов. Чем опытнее программист, тем более сложную нейронную сеть он сможет запрограммировать. Состав компонентов  TensorFlow будет отличаться. Например:

  1. Для "чайников" подойдет более низкий уровень библиотеки TensorFlow с API-интерфейсом «Core». Этот уровень библиотек оперирует основными компонентами: тензором, графиком, переменной, методом, функцией и др.

  2. Для профессиональных разработчиков подойдет более высокий уровень библиотеки TensorFlow с API-интерфейсом «tf.estimator». Где внедрены дополнительные компоненты и средства автоматизации управления, обучения, оценки результатов и др.

Понимание основных компонентов  TensorFlow нужно в любом случае, уровень используемой библиотеки в данном случае неважен. Поэтому давайте разберем основные компоненты библиотеки  TensorFlow.

Тензор

Тензор — это основной компонент библиотеки  TensorFlow. Даже в названии библиотеки он присутствует. По сути, тензор — это структура хранения данных, которая может быть одна, двух или трехмерной. 

Тензор может принадлежать к одному из 3-х типов:

  1. Тип «константа». Это неизменяемая структура хранения информации, которая хранит единственное значение.

  2. Тип «переменный». Это тип тензора, который подвергается изменению. Сохраняемая внутри него информация меняется в процессе выполнения программы.

  3. Тип «заполнитель». Это тип тензора, который сохраняет информацию из внешних источников. Такие тензоры предоставляют хранимую информацию по запросу.

 Вот как выглядят разные типы тензоров в коде:

import tensorflow as tf

 

tf.reset_default_graph()

 

# тип тензора «заполнитель»

tensor1 = tf.placeholder("float", name='pholdTensor')

print("tensor1:", tensor1)

 

# тип тензора «переменный» 

tensor2 = tf.Variable(2.0, name='varTensor')

print("tensor2:", tensor2)

 

# тип тензора «константа»

tensor3 = tf.constant([1., 2., 3., 4.], name='consTensor')

print("tensor3:", tensor3)

 

В результате получим следующий код:

tensor1: Tensor("pholdTensor:0", dtype=float32)

tensor2: 

tensor3: Tensor("consTensor:0", shape=(4,), dtype=float32)

 

На самом деле, значения тензоров в этой точке исполнения программы не содержатся. Они становятся доступными только при активации графика в сеансе.

Графики и функции

Графики — это структура хранения информации в библиотеке  TensorFlow, которая состоит из блоков информации и набора операций с этой информацией. Графы в  TensorFlow хороши тем, что их можно сохранять, запускать и редактировать без исходного кода Python. Таким образом, граф можно использовать там, где отсутствует интерпретатор Python. 

График в  TensorFlow строится на основе функции Питона, поэтому для его объявления используется выражение «tf.function». Например:

@tf.function

def my_function(y):

  print(y)

  return tf.sum(y)

 

Использование графиков TensorFlow дает 2 преимущества:

  • вычисления нейронной сети делаются быстрее;

  • графики можно переносить в другие проекты;

  • их воспроизведение не требует интерпретатора Питона.

Модули, слои или модели

Модули, слои или модели — это отдельный класс, который помогают управлять тензорами, переменными, графиками и функциями. Модули имеют 2 важные особенности:

  1. Помогают очень гибко работать с переменными, тензорами и функциями. Это удобно, потому что в процессе обучения нейронной сети вам неоднократно придется изменять эти компоненты.

  2. Модули легко импортируются и экспортируются. Что помогает вам использовать одну и ту же модель в нескольких местах.

Вот как может выглядеть класс «модуль» какого-нибудь объекта:

class FirstModule(tf.Module):

  def __init__(self, value):

    self.weight = tf.Variable(value)

 

  @tf.function

  def multiply(self, y):

    return y * self.weight

 

Важно понимать, что в процессе обучения нейронной сети, вы можете создавать собственные модели, что потребует от вас профессиональных знаний. Также вы можете воспользоваться уже готовыми моделями других программистов, что ускорит и облегчит вашу собственную разработку.

Тензоры, модели, графики, функции — это лишь краткий экскурс в теорию библиотеки  TensorFlow для "чайников". Возможности библиотеки очень широки, поэтому понимание «как с ней работать», во многом будет зависеть от проекта, который вы планируете создать. Максимально подробная документация по этой библиотеке доступна на ее официальном сайте tensorflow.org.

TensorFlow для "чайников": полезный инструмент

Инструменты для  TensorFlow нужны для того, чтобы ускорить и облегчить работу с нейронными сетями. 

Список полезных инструментов выглядит следующим образом:

  • Collaboratory — бесплатная облачная среда разработки, которая позволяет запускать TensorFlow прямо в браузере;

  • TensorBoard — набор инструментария для визуализации приложений на основе TensorFlow;

  • ML Perf — набор инструментария для тестирования;

  • XLA — специализированный компилятор, который ускоряет вычисления  TensorFlow;

  • TPU Research Cloud — программа, которая открывает доступ к тысячам готовых TPU;

  • TensorFlow Hub — библиотека с тысячами готовых моделей обучения;

  • TensorFlow Model Optimization Toolkit — набор инструментария для оптимизации моделей;

  • Tensor2Tensor — библиотека-дополнение к  TensorFlow для глубокого машинного обучения;

  • TRFL — библиотека-дополнение для обучения с подкреплением;

  • TensorFlow Quantum — библиотека для квантового машинного обучения;

  • Magenta — библиотека для машинного обучения в сфере музыки;

  • и др.

Заключение

Подходит ли библиотека  TensorFlow для "чайников"? Подходит, но при одном условии, что "чайник" изучит документацию и набор инструментов, необходимых под его конкретную разработку.

Схожие статьи

Карринг [removed] обзор продвинутой техники работы с функциями JS
Другое

Карринг [removed] обзор продвинутой техники работы с функциями JS

Проектирование и разработка интерфейсов пользователя: что нужно знать
Другое

Проектирование и разработка интерфейсов пользователя: что нужно знать

Синтаксический анализатор методом рекурсивного спуска. Что это такое?
Другое

Синтаксический анализатор методом рекурсивного спуска. Что это такое?

Учет рабочего времени за компьютером: лучшие time tracking программы
Другое

Учет рабочего времени за компьютером: лучшие time tracking программы