Часть III • Продвинутые возможности глубокого обучения с TensorFlow.js
дело лишь с приложениями, в которых данные прекрасно помещались в доступной
приложению оперативной памяти. Множество приложений требуют работы с боль
шими, громоздкими и, возможно, содержащими персональную информацию источ
никами данных, для которых подобная методика не подходит. Большие приложения
требуют технологии доступа к данным, размещенным в удаленном источнике, по
частям, по мере требования.
TensorFlow.js включает интегрированную библиотеку, предназначенную как раз
для подобных операций с данными. Эта библиотека, вдохновленная API
tf.data
Pythonверсии TensorFlow, создана, чтобы пользователи могли с помощью коротких
и удобочитаемых команд вводить данные, выполнять их предварительную обра
ботку и переправлять их далее. Вся эта функциональность доступна в пространстве
имен
tf.data
, если предварительно импортировать TensorFlow.js с помощью опера
тора следующего вида:
import * as tf from '@tensorflow/tfjs';
6.1.1. Объект tf.data.Dataset
Основная работа с модулем
tfjs-data
выполняется через единственный объект
tf.data.Dataset
. Он предоставляет простой, высокопроизводительный, с широкими
возможностями настройки способ обхода и обработки больших (потенциально во
обще неограниченных) списков элементов данных
1
. В самом первом приближении
можно считать
Dataset
аналогом итерируемой коллекции произвольных элемен
тов, в чемто напоминающей
Stream
в Node.js. При запросе очередного элемента из
Dataset
внутренняя реализация скачивает его и обеспечивает доступ к нему либо
при необходимости запускает функцию для его создания. Эта абстракция упрощает
обучение модели на объемах данных, целиком не помещающихся в оперативной
памяти, а также облегчает совместное использование и организацию объектов
Dataset
как полноправных объектов в тех случаях, когда их более одного.
Dataset
экономит память за счет потоковой передачи лишь требуемых битов данных, и не
приходится обращаться ко всему массиву. API
Dataset
также оптимизирует работу,
по сравнению с «наивной» реализацией, за счет упреждающей выборки значений,
которые могут понадобиться.
6.1.2. Создание объекта tf.data.Dataset
По состоянию на версию 1.2.7 TensorFlow.js существует три способа подключения
объекта
tf.data.Dataset
к поставщику данных. Мы довольно подробно рассмотрим
их все, а краткую сводку вы найдете в табл. 6.1.
1
В этой главе мы часто будем называть составляющие Dataset элементами (elements).
В большинстве случаев термин «элемент» — синоним терминов «пример данных»
(example) и «точка данных» (datapoint). То есть каждый элемент обучающего набора
данных представляет собой пару (x, y). При чтении данных из CSVисточника элементы
соответствуют строкам файла. Dataset достаточно гибок и позволяет работать с разнород
ными элементами, но делать это не рекомендуется.
Do'stlaringiz bilan baham: |