Что такое TensorFlow и Keras

Урок объясняет, что такое TensorFlow, при чём здесь Keras и почему они идут в комплекте.

TensorFlow — это open-source библиотека для численных вычислений и машинного обучения, в которой данные текут через граф операций в виде многомерных массивов — тензоров.

TensorFlow создала команда Google Brain, а в 2015 году открыла исходники. Сегодня это один из двух доминирующих фреймворков глубокого обучения (второй — PyTorch). На нём обучают модели для распознавания изображений, перевода, рекомендаций и генеративных задач — от исследовательских прототипов до продакшн-систем, обслуживающих миллиарды запросов.

Почему TensorFlow редко используют «голым»

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

Keras — это удобный человекочитаемый интерфейс поверх TensorFlow: вы собираете нейросеть из готовых слоёв, как из кубиков, а низкоуровневую математику фреймворк берёт на себя.

Начиная с TensorFlow 2.0, Keras встроен прямо внутрь как tf.keras — это рекомендованный способ писать модели. Поэтому на практике вы почти всегда пишете на Keras, а TensorFlow работает «под капотом».

Как они соотносятся

СлойКто этоЧто делает
Keras (tf.keras)высокоуровневый APIмодель из слоёв, обучение в пару строк
TensorFlow coreдвижоктензоры, операции, автоматический градиент
XLA / устройстваисполнениезапуск на CPU, GPU, TPU

Экосистема вокруг

TensorFlow — это не только обучение моделей. Вокруг него выросла целая экосистема инструментов:

  • TensorBoard — визуализация метрик, графов и гистограмм весов во время обучения.
  • TensorFlow Lite — запуск моделей на телефонах и встраиваемых устройствах.
  • TensorFlow.js — модели прямо в браузере на JavaScript.
  • TensorFlow Serving — продакшн-сервер для отдачи предсказаний по сети.
  • TFX — конвейеры для промышленного ML (данные, валидация, деплой).

Первый код

Импорт и проверка версии выглядят так. Это не запускается в браузере — TensorFlow не входит в стандартную библиотеку Python.

import tensorflow as tf

print("Версия TensorFlow:", tf.__version__)
print("GPU доступен:", len(tf.config.list_physical_devices("GPU")) > 0)

А вот так выглядит «Hello, World» глубокого обучения — модель из одного слоя, который учится предсказывать линейную зависимость:

import tensorflow as tf
import numpy as np

model = tf.keras.Sequential([
    tf.keras.layers.Dense(units=1, input_shape=[1])
])
model.compile(optimizer="sgd", loss="mean_squared_error")

xs = np.array([-1, 0, 1, 2, 3, 4], dtype=float)
ys = np.array([-3, -1, 1, 3, 5, 7], dtype=float)  # y = 2x - 1
model.fit(xs, ys, epochs=500, verbose=0)
print(model.predict([10.0]))  # ожидаем ~19

Как работает под капотом

В TensorFlow 1.x граф строился заранее («сначала объяви, потом запусти»), что было непривычно и трудно отлаживать. В TensorFlow 2 по умолчанию включён eager execution — операции выполняются сразу, как обычный Python, и вы видите промежуточные значения. Для скорости Keras может оборачивать вычисления в tf.function, превращая Python-код в оптимизированный граф автоматически — вы получаете и удобство, и производительность.

Частые ошибки

  • Путать TensorFlow и Keras как конкурентов. Это не «или-или»: Keras — часть TensorFlow 2, вы используете оба одновременно.
  • Искать отдельный пакет keras. Для TF лучше брать tf.keras, а не сторонний keras — версии и поведение могут расходиться.
  • Ждать, что код заработает в браузере. TensorFlow требует установки (pip install tensorflow) и не входит в stdlib.

Итог

  • TensorFlow — движок численных вычислений и глубокого обучения от Google.
  • Keras — высокоуровневый API поверх него; в TF2 это tf.keras и рекомендованный способ писать модели.
  • Вокруг TF выросла экосистема: TensorBoard, TF Lite, TF.js, Serving, TFX.
  • В TF2 по умолчанию eager-режим — код выполняется сразу, как обычный Python.
Проверьте себя
1. Как соотносятся TensorFlow и Keras в TensorFlow 2?
AЭто конкурирующие фреймворки, нужно выбрать один
BKeras — высокоуровневый API внутри TensorFlow (tf.keras)
CTensorFlow — обёртка над Keras
DKeras работает только без TensorFlow
2. Что такое eager execution в TensorFlow 2?
AРежим, где граф строится заранее, а потом запускается
BРежим, где операции выполняются сразу, как обычный Python
CСпособ запуска на GPU
DФормат сохранения модели
3. Какой инструмент экосистемы запускает модели в браузере?
ATensorFlow Lite
BTensorBoard
CTensorFlow.js
DTFX