Примечание редактора: Ён выступает на предстоящем мероприятии ODSC East 2019 с 30 апреля по 3 мая! Обязательно ознакомьтесь с его докладом « Глубокое обучение для потоковой передачи данных в реальном времени с помощью Kafka и TensorFlow ».

Как одна из самых популярных платформ глубокого обучения, TensorFlow широко используется в производстве в широком спектре отраслей. Предстоящий TensorFlow 2.0, о котором было объявлено недавно, выйдет в начале этого года со многими изменениями. Высокоуровневый API tf.keras, активное выполнение и tf.data значительно упрощают использование. Вот хороший пример обучения модели в несколько строк:

“`

импортировать тензорный поток как tf

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data ()

x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential ([

tf.keras.layers.Flatten (input_shape = (28, 28)),

tf.keras.layers.Dense (512, активация = tf.nn.relu),

tf.keras.layers.Dropout (0.2),

tf.keras.layers.Dense (10, активация = tf.nn.softmax)

])

model.compile (optimizer = ‘adam’,

loss = ‘sparse_categorical_crossentropy’,

метрики = ["точность"])

model.fit (x_train, y_train, epochs = 5)

model.evaluate (x_test, y_test)

“`

[Статья по теме: Лучшие инструменты разработки для машинного обучения]

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

Одним из примеров является интеграция TensorFlow с Apache Kafka. Kafka широко используется для потоковой обработки и поддерживается большинством фреймворков больших данных, таких как Spark и Flink. Однако долгое время в TensorFlow не было поддержки потоковой передачи Kafka. Такие форматы данных, как TFRecords и tf.Example в TensorFlow, также редко встречаются в сообществе специалистов по большим данным или науке о данных.

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

С помощью сообщества поддержка потоковой передачи Apache Kafka для TensorFlow была недавно выпущена как часть пакета tensorflow-io (https://github.com/tensorflow/io) SIG IO TensorFlow. SIG IO - это группа с особыми интересами в рамках организации TensorFlow, специализирующаяся на поддержке ввода-вывода, потоковой передачи и файловых форматов. Помимо потоковой передачи Apache Kafka, tensorflow-io также включает поддержку очень широкого диапазона форматов данных и фреймворков. Он поддерживает Apache Ignite для памяти и кэширования, Apache Parquet и Arrow для сериализации, AWS Kinesis и Google Cloud Pub / Sub для потоковой передачи, а также многие форматы файлов видео, аудио и изображений. Могут использоваться как Python, так и язык R, что особенно удобно для сообщества специалистов по науке о данных.

Стоит отметить, что tensorflow-io реализован как часть конвейера tf.data и естественного расширения API TensorFlow 2.0. Другими словами, пользователи могут читать данные из Kafka и передавать их tf.keras. Обучение или вывод выполняется таким же простым и лаконичным способом, как и в примере, приведенном в начале этой статьи.

[Статья по теме: Операции с данными: правильное использование моделей машинного обучения в производственной среде]

Мы надеемся, что эта статья поможет более широкому сообществу принять TensorFlow. Мы также предоставим более подробную информацию в предстоящей сессии ODSC East 2019, Глубокое обучение для потоковой передачи данных в реальном времени с помощью Kafka и TensorFlow.

— — — — — — — —

Прочтите больше статей по науке о данных на OpenDataScience.com, включая учебные пособия и руководства от новичка до продвинутого уровня! Подпишитесь на нашу еженедельную рассылку здесь и получайте последние новости каждый четверг.