TensorFlow: введение, архитектура и пример

Сегодня мы хотим, чтобы вы узнали кое-что о TensorFlow. Это одна из самых полезных программных библиотек на сегодняшний день. Мы собрались здесь, чтобы поделиться своими знаниями о том, что такое TensorFlow. Кроме того, я расскажу вам об архитектуре этой программной библиотеки на некоторых примерах.

Мы подготовили эту статью для абсолютных новичков, у которых нет никаких знаний об этом. Итак, приступим.

Что такое TensorFlow?

Самый первый вопрос, который приходит вам в голову, — что такое TensorFlow. Давайте я расскажу вам простым языком. Это программная библиотека с открытым исходным кодом, принадлежащая компании Google и известная благодаря глубокому обучению.

Исследователи и разработчики Google, работающие над машинным интеллектом, разработали эту программную библиотеку. Впервые TensorFlow была представлена для публичного использования в 2015 году, а первая стабильная версия была выпущена в 2017 году.  

Теперь давайте разберемся, что такое глубокое обучение. Можно заметить, что если вы начинаете набирать что-то в строке поиска, Google выдает рекомендацию о следующих словах. Это возможно благодаря искусственному интеллекту и глубокому обучению.

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

Google внедрил TensorFlow в Gmail, Google photo, поисковую систему Google, что сделало это программное обеспечение удобным для пользователя.  

Архитектура TensorFlow

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

Чтобы понять архитектуру, необходимо знать некоторые ключевые понятия.

1. Servable

Они являются центральной абстракцией сервиса TensorFlow. Servable относится к базовым объектам, используемым клиентами для выполнения вычислений. Размер обслуживаемого объекта является гибким. Он может быть любого типа и интерфейса, что обеспечивает гибкость и будущие возможности, такие как:

  1. Потоковая передача результатов
  2. Экспериментальные API 
  3. Асинхронные режимы работы  

Сервабы не могут управлять собственным жизненным циклом. Типичный servable включает в себя следующее:

  1. TensorFlow savedModeBundle
  2. Таблица поиска для встраивания или поиска в словаре.

2. Версии сервейлов

TensorFlow Serving может работать с одной или несколькими версиями обслуживаемого объекта. Это позволяет загружать свежие конфигурации алгоритмов, веса и другие данные с течением времени. Это поддерживает постепенное развертывание и эксперименты. TensorFlow позволяет клиенту запрашивать либо последнюю версию, либо конкретный идентификатор версии для определенной модели во время обслуживания.   

3. Обслуживаемые потоки

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

4. Модели

TensorFlow представляет модель в виде одного или нескольких обслуживаемых объектов. Она может включать один или несколько алгоритмов, в том числе выученные веса. Она также содержит таблицы поиска или встраивания.

Пользователь может представить составную модель в виде одного из следующих вариантов:

  1. Несколько независимых обслуживаемых объектов
  2. Единый составной обслуживаемый объект.   

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

5. Загрузчики

Управляет жизненным циклом обслуживаемого объекта. API обеспечивает общую инфраструктуру. Она не зависит от конкретных алгоритмов обучения, данных или участия в использовании продукта. 

6. Источники

Источники — это подключаемые модули, которые используются для поиска и предоставления обслуживаемых объектов. Каждый из источников предоставляет несколько обслуживаемых потоков. Для каждого обслуживаемого потока источник предоставляет один экземпляр загрузчика для каждой версии.

Интерфейс TensorFlow serving для источников может находить серванты, находящиеся в произвольной системе хранения. Сервисы включают реализацию общих эталонных источников.

Источник может поддерживать состояние, которое может быть общим для многих версий или сервалов. Это необходимо для сервисов, которые используют дельта-обновления между версиями.

7. Менеджеры

Менеджеры могут быть описаны как обработчики жизненных циклов сервисов. Они включают в себя:

  1. загрузка обслуживаемых объектов
  2. обслуживание сервисов
  3. выгрузка обслуживаемых файлов

Менеджеры отслеживают все версии источников. Он пытается удовлетворить запросы источников. Но он также отказывается загружать желаемую версию, если требуемые источники остаются недоступными. Менеджеры также могут делать задержку в выгрузке.

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

8. Ядро

Сервировочное ядро TensorFlow управляет следующими аспектами сервисов. Оно использует стандартные API для обслуживания TensorFlow.

  1. Жизненный цикл
  2. Метрики  

Сервисы и загрузчики рассматриваются как непрозрачные объекты.

Жизнь обслуживаемого объекта в TensorFlow

Если попытаться описать весь процесс всего двумя предложениями, то можно сказать следующее,

  1. Источники создают загрузчики для версий обслуживаемых объектов.
  2. Загрузчики отправляются менеджеру как желаемые версии. Здесь они загружаются и обслуживаются клиентом в соответствии с запросом.

Вот и весь процесс. Теперь давайте попробуем понять это в деталях:

  1. Исходный плагин создает загрузчик для определенной версии. Он содержит необходимые метаданные.
  2. Источники используют обратный вызов для изменения менеджера желаемой версии.
  3. Менеджер применяет настроенную политику версий, чтобы решить свое следующее действие. Это действие может быть выгрузкой предыдущей загруженной версии или загрузкой новой версии.
  4. Если менеджер определяет, что это безопасно, он предоставляет загрузчику необходимые ресурсы. А также сообщает загрузчику, что нужно загрузить новую версию. 
  5. Когда клиенты запрашивают у менеджера сервис, либо конкретную версию, либо последнюю версию, менеджер возвращает хэндл для этого сервиса.

Пример TensorFlow

Import numpy as np
Import tensorflow as tf

Это небольшой пример TensorFlow, в котором мы импортировали TensorFlow как tf. В python мы используем короткое имя для библиотеки.

Это дает преимущества перед вводом полного имени библиотеки. Для быстрой обработки мы можем импортировать TensorFlow как tf. И называть его tf всякий раз, когда мы хотим использовать функцию TensorFlow.

Заключение

Мы дали краткую информацию о TensorFlow. Также мы описали его архитектуру и постарались, чтобы вы поняли эту тему. Надеемся, это определенно поможет вам.

Оцените статью
cdelat.ru
Добавить комментарий