Добавить в цитаты Настройки чтения

Страница 4 из 4



Компилируем модель, указываем оптимизатор, функцию потерь и метрики.

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

Оцениваем точность модели на тестовом наборе данных.

Используем модель для предсказания эмоций на новых данных.

import tensorflow as tf

from tensorflow import keras

from tensorflow.keras import layers

# Создание модели

model = keras.Sequential([

layers.Conv2D(32, (3, 3), activation='relu', input_shape=(48, 48, 1)),

layers.BatchNormalization(),

layers.MaxPooling2D(pool_size=(2, 2)),

layers.Dropout(0.25),

layers.Conv2D(64, (3, 3), activation='relu'),

layers.BatchNormalization(),

layers.MaxPooling2D(pool_size=(2, 2)),

layers.Dropout(0.25),

layers.Conv2D(128, (3, 3), activation='relu'),

layers.BatchNormalization(),

layers.MaxPooling2D(pool_size=(2, 2)),

layers.Dropout(0.25),

layers.Flatten(),

layers.Dense(256, activation='relu'),

layers.BatchNormalization(),

layers.Dropout(0.5),

layers.Dense(7, activation='softmax')



])

# Компиляция модели

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# Обучение модели

history = model.fit(train_data, train_labels, epochs=50, validation_data=(val_data, val_labels))

# Оценка модели

test_loss, test_acc = model.evaluate(test_data, test_labels)

print('Test accuracy:', test_acc)

# Использование модели

predictions = model.predict(new_data)

Этот код создает сверточную нейронную сеть для распознавания эмоций на изображениях размером 48x48 пикселей.

В первом слое используется свертка с 32 фильтрами размера 3x3 и функцией активации ReLU, которая принимает входные изображения размера 48x48x1. Затем следуют слои нормализации пакетов, максимальной пулинги с размером фильтра 2x2 и dropout, который помогает предотвратить переобучение.

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

Затем следуют два полносвязных слоя с функцией активации ReLU и функцией нормализации пакетов, а также слои dropout. Последний слой содержит 7 нейронов и использует функцию активации softmax для определения вероятности каждой из 7 эмоций.

Для компиляции модели используется оптимизатор adam, функция потерь categorical_crossentropy и метрика accuracy. Модель обучается на тренировочных данных в течение 50 эпох с валидацией на проверочных данных.

После обучения модели оценивается на тестовых данных и выводится точность предсказаний. Затем используется модель для предсказания эмоций на новых данных.

В этой главе мы рассмотрели основные концепции, которые лежат в основе нейросетей. Мы изучили, что такое нейрон, как он работает в нейросети, что такое веса и смещения, как нейрон принимает решения и как строится нейросеть. Мы также рассмотрели процесс обучения нейросети и то, как нейросеть корректирует свои веса и смещения, чтобы улучшить точность прогнозирования.

Итак, можно сделать вывод, что нейросеть – это мощный инструмент в области искусственного интеллекта и машинного обучения, который используется во многих приложениях. Основой нейросети является нейрон, который принимает входные сигналы, обрабатывает их и генерирует выходной сигнал. Нейросеть состоит из множества нейронов, объединенных в слои, и каждый нейрон имеет веса и смещения.

Мы также рассмотрели практические аспекты создания и обучения нейронных сетей с использованием библиотеки TensorFlow и фреймворка Keras. Мы описали процесс подготовки данных, создания модели, ее компиляции и обучения. Кроме того, мы обсудили важность проверки и оценки модели на тестовых данных.

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

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

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.