Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шолле Ф. - Глубокое обучение на Python (Библиотека программиста) - 2023.pdf
Скачиваний:
3
Добавлен:
07.04.2024
Размер:
11.34 Mб
Скачать

Краткие итоги главы    101

test_images = test_images.reshape((10000, 28 * 28)) test_images = test_images.astype("float32") / 255

fit(model, train_images, train_labels, epochs=10, batch_size=128)

2.5.4. Оценка модели

Мы.можем.оценить.модель,.применив.argmax .к.прогнозам.на.контрольных.изображениях.и.сравнив.с.ожидаемыми.метками:

predictions = model(test_images) predictions = predictions.numpy()

predicted_labels = np.argmax(predictions, axis=1) matches = predicted_labels == test_labels print(f"accuracy: {matches.mean():.2f}")

Метод .numpy() преобразует тензор TensorFlow в тензор NumPy

Вот.и.все!.Как.видите,.довольно.сложно.реализовать.«вручную».то,.что.можно. выполнить.с.помощью.нескольких.строк.кода,.использующих.Keras..Но.теперь,. пройдя.через.эти.этапы,.вы.должны.четко.уяснить.происходящее.внутри.нейронной.сети.при.вызове.ее.метода.fit()..Понимание.низкоуровневых.деталей. поможет.вам.эффективнее.использовать.высокоуровневые.функции.Keras.API.

КРАТКИЕ ИТОГИ ГЛАВЫ

.Тензоры.образуют.основу.современных.систем.машинного.обучения..Они.бывают.разных.видов.в.зависимости.от.типа.(dtype),.ранга.(rank).и.формы. (shape).

.Числовыми.тензорами.можно.манипулировать.с.помощью.тензорных операций.(таких.как.сложение,.тензорное.произведение.или.поэлементное.умножение),.каждая.из.которых.имеет.геометрическую.интерпретацию..Вообще,. все.в.глубоком.обучении.имеет.геометрическую.интерпретацию.

.Модели.глубокого.обучения.состоят.из.цепочек.простых.тензорных.операций,.параметризованных.весами,.которые.сами.являются.тензорами..Веса. модели.—.это.место,.где.хранятся.накопленные.«знания».

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

.Обучение.происходит.путем.извлечения.пакетов.случайных.образцов.данных.и.их.целей.и.вычисления.градиента.параметров.модели.с.учетом.потерь. в.пакете..Затем.параметры.модели.немного.смещаются.(величина.смещения. определяется.скоростью.обучения).в.направлении,.противоположном.направлению.градиента..Это.называется.стохастическим градиентным спуском на небольших пакетах.

102    Глава 2. Математические основы нейронных сетей

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

.В.последующих.главах.вам.часто.будут.встречаться.два.ключевых.поня- тия.—.функции.потерь.и.оптимизаторы..Они.должны.быть.определены.до. передачи.данных.в.модель.

. Функция потерь.—.это.величина,.которую.требуется.свести.к.минимуму. в.ходе.обучения,.поэтому.она.должна.представлять.собой.меру.успеха.для. решаемой.вами.задачи.

. Оптимизатор.определяет.точный.способ.использования.градиента.потерь.для.изменения.параметров:.например,.это.может.быть.оптимизатор. RMSProp,.реализующий.градиентный.спуск.с.импульсом,.и.др.

Введение3в Keras и TensorFlow

В этой главе

33 Библиотеки TensorFlow и Keras и взаимоотношения между ними. 33 Настройка окружения для глубокого обучения.

33 Реализация базовых концепций глубокого обучения в Keras и TensorFlow.

Цель.этой.главы.—.дать.все.необходимое,.чтобы.вы.могли.начать.применять. глубокое.обучение.на.практике..Я.кратко.расскажу.о.Keras.(https://keras.io). и.TensorFlow.(https://tensorflow.org).—.инструментах.глубокого.обучения.на.языке. Python,.которые.мы.будем.использовать.на.протяжении.всей.книги..Вы.узнаете,. как.настроить.окружение.для.глубокого.обучения.с.TensorFlow,.Keras,.а.также. с.поддержкой.вычислений.на.графическом.процессоре..Наконец,.опираясь.на. знания,.полученные.во.время.нашего.первого.знакомства.с.Keras.и.TensorFlow. в.главе.2,.мы.рассмотрим.основные.компоненты.нейронных.сетей.и.то,.как.они. преобразуются.в.код,.использующий.Keras.и.TensorFlow.

К.концу.этой.главы.вы.будете.готовы.перейти.к.решению.практических.задач.—. чем.мы.и.займемся.в.главе.4.

104    Глава 3. Введение в Keras и TensorFlow

3.1. ЧТО ТАКОЕ TENSORFLOW

TensorFlow.—.бесплатная.платформа.машинного.обучения.на.Python.с.открытым. исходным.кодом,.разработанная.в.основном.в.Google..Как.и.у.NumPy,.основная. цель.TensorFlow.—.дать.инженерам.и.исследователям.возможность.манипули- ровать.математическими.выражениями.с.числовыми.тензорами..Но.TensorFlow. может.намного.больше,.чем.NumPy,.в.том.числе:

.автоматически.вычислять.градиент.любого.дифференцируемого.выражения. (как.было.показано.в.главе.2),.что.делает.ее.прекрасной.основой.для.машинного.обучения;

.работать.не.только.на.обычных,.но.также.на.графических.и.тензорных.про- цессорах.—.высокопараллельных.аппаратных.ускорителях;

. распределять.вычисления.между.множеством.компьютеров;

.экспортировать.вычисления.другим.окружениям.выполнения,.таким.как. C++,.JavaScript.(для.веб-приложений,.выполняющихся.в.браузере).или. TensorFlow.Lite.(для.приложений,.действующих.в.мобильных.или.встраи­ ваемых .устройствах) .и .т..д..Это .упрощает .развертывание .приложений. TensorFlow.в.практических.условиях.

Важно.помнить,.что.TensorFlow.—.это.не.просто.библиотека..Это.целая.плат- форма,.на.которой.базируется.обширная.экосистема.компонентов..Часть.из.них. разработана.в.Google,.часть.—.сторонними.организациями..В.их.числе.можно. назвать .TF-Agents .для .исследования .обучения .с .подкреплением, .TFX .для. организации.управления.процессом.машинного.обучения,.TensorFlow.Serving. для.развертывания.в.производственном.окружении.и.репозиторий.TensorFlow. Hub.предварительно.обученных.моделей..Вместе.эти.компоненты.охватывают. широкий.спектр.сценариев.использования,.от.передовых.исследований.до. крупномасштабных.производственных.приложений.

Библиотека.TensorFlow.поддерживает.возможность.масштабирования:.так,. ученые.из.Национальной.лаборатории.Ок-Риджа.с.ее.помощью.обучили.модель. прогнозирования.экстремальных.погодных.условий.на.суперкомпьютере.IBM. Summit.с.27.000.графических.процессоров.и.суммарной.производительностью. 1,1.эксафлопса..Google.тоже.использовал.TensorFlow.для.разработки.приложений.глубокого.обучения,.требующих.больших.вычислительных.ресурсов,. таких.как.агент.AlphaZero.для.игры.в.шахматы.и.в.го..При.создании.своих. моделей,.если.вам.будет.выделен.достаточный.бюджет,.вы.можете.надеяться. на.масштабирование.до.10.петафлопс.на.небольшом.модуле.TPU.или.большом. кластере.графических.процессоров,.арендованном.в.Google.Cloud.или.AWS..Это. составит.около.1.%.от.пиковой.производительности.одного.из.самых.мощных. суперкомпьютеров.в.2019.году!