Что такое 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.