Представлений значний випуск платформи машинного навчання TensorFlow 2.0, що надає готові реалізації різних алгоритмів глибокого машинного навчання, простий програмний інтерфейс для побудови моделей на мові Python і низькорівневий інтерфейс для мови С ++, що дозволяє управляти побудовою і виконанням обчислювальних графів. Код системи написаний на мовах С ++ і Python і розповсюджується під ліцензією Apache.
Платформа спочатку розроблена командою Google Brain і використовуються в сервісах Google для розпізнавання мови, виділення осіб на фотографіях, визначення схожості зображень, відсіювання спаму в Gmail, підбору новин в Google News і організації перекладу з урахуванням сенсу. Розподілені системи машинного навчання можна створювати на типовому обладнанні, завдяки вбудованій підтримці в TensorFlow рознесення обчислень на кілька CPU або GPU.
TensorFlow надає бібліотеку готових алгоритмів чисельних обчислень, реалізованих через графи потоків даних (data flow graphs). Вузли в таких графах реалізують математичні операції або точки входу/виходу, в той час як ребра графа представляють багатовимірні масиви даних (тензори), які перетікають між вузлами. Вузли можуть бути закріплені за обчислювальними пристроями і виконуватися асинхронно, паралельно обробляючи разом все підходящі до них Тезоро, що дозволяє організувати одночасну роботу вузлів в нейронної мережі за аналогією з одночасною активацією нейронів в мозку.
Основна увага при підготовці нової версії було приділено спрощенню і простоті використання. Деякі нововведення:
- Для побудови та тренування моделей запропоновано новий високорівнева API Keras, що надає кілька варіантів інтерфейсів для побудови моделей (Sequential, Functional, Subclassing) з можливістю їх негайного виконання (без попередньої компіляції) і з простим механізмом налагодження;
- Доданий API tf.distribute.Strategy для організації розподіленого навчання моделей з мінімальною зміною існуючого коду. Крім можливості рознесення обчислень на кілька GPU, доступна експериментальна підтримка рознесення процесу навчання на кілька незалежних обробників і можливість задіяння хмарних TPU (Tensor processing unit);
- Замість декларативної моделі побудови графа з виконанням через tf.Session надана можливість написання звичайних функцій на мові Python, які за допомогою виклику tf.function можуть бути перетворені в графи і потім віддалено виконані, серіалізіровани або оптимізовані для підвищення продуктивності;
- Доданий транслятор AutoGraph, що перетворює потік команд Python в вираження TensorFlow, що дозволяє використовувати код на мові Python всередині функцій tf.function-decorated, tf.data, tf.distribute і tf.keras;
- У SavedModel уніфікований формат обміну моделями і додана підтримка збереження та відновлення стану моделей. Зібрані для TensorFlow моделі тепер можуть бути використані в TensorFlow Lite (на мобільних пристроях), TensorFlow JS (в браузері або Node.js), TensorFlow Serving і TensorFlow Hub;
- Уніфіковані API tf.train.Optimizers і tf.keras.Optimizers, замість compute_gradients для обчислення градієнтів запропоновані новий клас GradientTape;
- Значно збільшена продуктивність при використанні GPU. Швидкість навчання моделей на системах з GPU NVIDIA Volta і Turing зросла до трьох разів;
- Проведена велика чистка API, багато викликів перейменовані або видалені, припинена підтримка глобальних змінних у допоміжних методах. Замість tf.app, tf.flags, tf.logging запропонований новий API absl-py. Для продовження використання старого API підготовлений модуль compat.v1.
Ще немає коментарів