Глубокое обучение с JAX, Сапунов Г., 2025

Подробнее о кнопках "Купить"

По кнопкам "Купить бумажную книгу" или "Купить электронную книгу" можно купить в официальных магазинах эту книгу, если она имеется в продаже, или похожую книгу. Результаты поиска формируются при помощи поисковых систем Яндекс и Google на основании названия и авторов книги.

Наш сайт не занимается продажей книг, этим занимаются вышеуказанные магазины. Мы лишь даем пользователям возможность найти эту или похожие книги в этих магазинах.

Список книг, которые предлагают магазины, можно увидеть перейдя на одну из страниц покупки, для этого надо нажать на одну из этих кнопок.

Глубокое обучение с JAX, Сапунов Г., 2025.
 
   Книга обучает созданию эффективных нейронных сетей с применением библиотеки JAX от Google. Специальные инструменты JAX помогут вам справиться с проблемами нехватки производительности, характерными для глубокого обучения на больших данных. Примеры реалистичных проектов и листинги исходного кода с подробными комментариями показывают, как парадигма функционального программирования JАХ улучшает сочетаемость различных программных компонентов и возможности распараллеливания.
Для читателей, имеющих опыт программирования на языке Python и знакомых с принципами глубокого обучения.

Глубокое обучение с JAX, Сапунов Г., 2025


Когда и зачем используется JAX.
Еще одна библиотека глубокого обучения? Вы серьезно?! После того как все пути сошлись в одну точку, которой стал всеобщий любимец PyTorch, и сформировалась устойчивая экосистема вокруг Tensor-Flow, зачем мне беспокоиться о JАХ? А если бы мне потребовалось низкоуровневое средство разработки нейронной сети, то есть старый добрый NumPy или его альтернативы с поддержкой GPU. Почему я вообще должен обращать внимание на JАХ?

История развития фреймворков глубокого обучения показывает, что ни один фреймворк не существует вечно. Например, где теперь Theano, который оказал значительное влияние на развитие этой отрасли? Для меня это была первая библиотека глубокого обучения в современном смысле после давно забытых PyBrain2 и прочих. А где сейчас Caffe? Он был весьма популярен много лет назад, особенно для развертывания промышленных решений. Много лет назад я разработал инструмент помощника водителя для распознавания дорожных знаков в реальном времени, работающий на старых смартфонах с ОС Android, обладающих гораздо меньшей мощностью, чем современные телефоны, и Caffe был лучшим вариантом выбора для выполнения этой работы в то время.

ОГЛАВЛЕНИЕ.
Оглавление.
Предисловие.
Благодарности.
О книге.
Об авторе.
Об иллюстрации на обложке.
Часть I ПЕРВЫЕ ШАГИ.
1 Когда и зачем используется JAX.
1.1 Почему нужно использовать JAX.
1.1.1 Производительность вычислений.
1.1.2 Функциональный подход.
1.1.3 Экосистема JAX.
1.2 Чем JAX отличается от NumPy.
1.2.1 JAX как NumPy.
1.2.2 Компонуемые трансформации.
1.3 Чем JAX отличается от TensorFlow и PyTorch.
Резюме.
2 Первая программа в JAX.
2.1 Учебная задача машинного обучения: классификация рукописных цифр.
2.2 Общий обзор проекта глубокого обучения с использованием JAX.
2.3 Загрузка и подготовка набора данных.
2.4 Простая нейронная сеть с использованием JAX.
2.4.1 Инициализация нейронной сети.
2.4.2 Нейронная сеть с прямой связью.
2.5 vmap: автоматически векторизованные вычисления для обработки пакетов.
2.6 Autodiff: как вычислять градиенты, ничего не зная о производных.
2.6.1 Функция потерь.
2.6.2 Определение градиентов.
2.6.3 Шаг обновления градиента.
2.6.4 Цикл тренировки.
2.7 JIT: компиляция кода для ускорения его выполнения.
2.8 Сохранение и развертывание модели.
2.9 Чистые функции и компонуемые трансформации: почему они так важны.
Упражнение 2.1.
Резюме.
Часть II ЯДРО JAX.
3 Работа с массивами.
3.1 Обработка изображений с использованием массивов NumPy.
3.1.1 Загрузка изображения в массив NumPy.
3.1.2 Выполнение простых операций предварительной обработки с изображением.
3.1.3 Добавление шума в изображение.
3.1.4 Реализация фильтрации изображения.
3.1.5 Сохранение тензора как файла изображения.
3.2 Массивы в JAX.
3.2.1 Переход на NumPy-подобный API JAX.
3.2.2 Что такое Array?.
3.2.3 Операции, связанные с устройствами.
3.2.4 Асинхронная диспетчеризация.
3.2.5 Выполнение вычислений на TPU.
3.3 Отличия от NumPy.
3.3.1 Неизменяемость.
3.3.2 Типы.
3.4 Интерфейсы высокого и низкого уровней: jax.numpy и jax.lax.
3.4.1 Базисные элементы управления потоком выполнения.
3.4.2 Повышение (расширение) типа.
Упражнение 3.1.
Резюме.
4 Вычисление градиентов.
4.1 Различные способы вычисления производных.
4.1.1 Дифференцирование вручную.
4.1.2 Символьное дифференцирование.
4.1.3 Численное дифференцирование.
4.1.4 Автоматическое дифференцирование.
4.2 Вычисление градиентов с использованием autodiff.
4.2.1 Работа с градиентами в TensorFlow.
4.2.2 Работа с градиентами в PyTorch.
4.2.3 Работа с градиентами в JAX.
4.2.4 Производные более высоких порядков.
4.2.5 Вариант со многими переменными.
4.3 Прямой и обратный режимы autodiff.
4.3.1 Трассировка оценок.
4.3.2 Прямой режим и jvp().
4.3.3 Обратный режим и vjp().
4.3.4 Материалы для более глубокого изучения.
Резюме.
5 Компиляция кода.
5.1 Использование компиляции.
5.1.1 Использование JIT-компиляции.
5.1.2 Чистые функции и процесс компиляции.
5.2 Внутренний механизм JIT.
5.2.1 Jaxpr – промежуточное представление для программ JAX.
5.2.2 XLA.
5.2.3 Использование AOT-компиляции.
5.3 Ограничения JIT-компиляции.
5.3.1 Чистые функции и функции, не являющиеся чистыми.
5.3.2 Точные числовые данные.
5.3.3 Условные выражения, использующие значения входных параметров.
5.3.4 Медленная компиляция.
5.3.5 Методы класса.
5.3.6 Простые функции.
Упражнение 5.1.
Резюме.
6 Векторизация кода.
6.1 Различные способы векторизации функции.
6.1.1 Простейшие методики.
6.1.2 Векторизация вручную.
6.1.3 Автоматическая векторизация.
6.1.4 Сравнение скорости выполнения.
6.2 Управление поведением vmap().
6.2.1 Управление осями массива для выполнения преобразования.
6.2.2 Управление осями выходного массива.
6.2.3 Использование именованных аргументов.
6.2.4 Использование стиля декоратора.
6.2.5 Использование коллективных операций.
6.3 Варианты использования vmap() из реальной практики.
6.3.1 Обработка пакетов данных.
6.3.2 Пакетная обработка моделей нейронных сетей.
6.3.3 Поэлементные градиенты.
6.3.4 Векторизация циклов.
Резюме.
7 Распараллеливание вычислений.
7.1 Распараллеливание вычислений с помощью pmap().
7.1.1 Установка начальных условий задачи.
7.1.2 Использование pmap (почти) так же, как vmap.
7.2 Управление поведением pmap().
7.2.1 Управление отображением осей входных и выходных данных.
7.2.2 Использование именованных осей и коллективных операций.
7.3 Пример программы тренировки нейронной сети с распараллеливанием по данным.
7.3.1 Подготовка данных и структуры нейронной сети.
7.3.2 Реализация процедуры тренировки с распараллеливанием по данным.
7.4 Использование конфигураций с несколькими хостами.
Резюме.
8 Использование сегментирования тензоров.
8.1 Основы сегментирования тензоров.
8.1.1 Сетка устройств.
8.1.2 Позиционное сегментирование.
8.1.3 Пример с применением двумерной сетки.
8.1.4 Использование репликации.
8.1.5 Ограничения сегментирования.
8.1.6 Сегментирование с именованием.
8.1.7 Стратегия размещения устройств и ошибки.
8.2 Многослойный перцептрон с применением сегментирования тензоров.
8.2.1 Восьмиканальное распараллеливание данных.
8.2.2 Четырехканальное распараллеливание по данным, двухканальное распараллеливание тензора.
Резюме.
9 Случайные числа в JAX.
9.1 Генерация случайных данных.
9.1.1 Загрузка набора данных.
9.1.2 Генерация случайного шума.
9.1.3 Выполнение случайного расширения данных.
9.2 Отличия от NumPy.
9.2.1 Как работает NumPy.
9.2.2 Начальное число и состояние в NumPy.
9.2.3 PRNG в JAX.
9.2.4 Более подробная конфигурация JAX PRNG.
9.3 Генерация случайных чисел в реальных приложениях.
9.3.1 Создание полного конвейера расширения данных.
9.3.2 Генерация случайных инициализаций для нейронной сети.
Резюме.
10 Работа с pytree.
10.1 Представление сложных структур данных в форме pytree.
10.2 Функции для работы с pytree.
10.2.1 Использование tree_map().
10.2.2 Преобразование pytree в плоскую структуру и восстановление древовидной формы.
10.2.3 Использование tree_reduce().
10.2.4 Транспонирование pytree.
10.3 Создание специализированных узлов pytree.
Резюме.
Часть III ЭКОСИСТЕМА.
11 Высокоуровневые библиотеки поддержки нейронных сетей.
11.1 Классификация изображений MNIST с использованием многослойного перцептрона.
11.1.1 Многослойный перцептрон в Flax.
11.1.2 Библиотека трансформации градиентов Optax.
11.1.3 Тренировка нейронной сети с применением Flax.
11.2 Классификация изображений с использованием ResNet.
11.2.1 Управление состоянием в Flax.
11.2.2 Сохранение и загрузка модели с использованием Orbax.
11.3 Использование экосистемы Hugging Face.
11.3.1 Использование предварительно натренированной модели из хранилища Hugging Face Model Hub.
11.3.2 Более подробное изучение процессов точной настройки и предварительной тренировки.
11.3.3 Использование библиотеки диффузоров.
Резюме.
12 Другие члены экосистемы JAX.
12.1 Экосистема глубокого обучения.
12.1.1 Высокоуровневые библиотеки поддержки нейронных сетей.
12.1.2 Большие языковые модели в JAX.
12.1.3 Библиотеки утилит.
12.2 Модули машинного обучения.
12.2.1 Обучение с подкреплением.
12.2.2 Прочие библиотеки машинного обучения.
12.3 Модули JAX для других сфер деятельности.
Резюме.
Приложение A. Установка JAX.
Приложение B. Использование Google Colab.
Приложение C. Использование Google Cloud TPU.
Приложение D. Экспериментальные средства распараллеливания.
Предметный указатель.



Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Глубокое обучение с JAX, Сапунов Г., 2025 - fileskachat.com, быстрое и бесплатное скачивание.

Скачать pdf
Ниже можно купить эту книгу, если она есть в продаже, и похожие книги по лучшей цене со скидкой с доставкой по всей России.Купить книги



Скачать - pdf - Яндекс.Диск.
Дата публикации:





Теги: :: :: :: ::


 


 

Книги, учебники, обучение по разделам




Не нашёл? Найди:





2026-09-08 05:32:03