Нейросети начало. Джейд Картер

Читать онлайн.
Название Нейросети начало
Автор произведения Джейд Картер
Жанр
Серия
Издательство
Год выпуска 2023
isbn



Скачать книгу

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

4. Пример кода «Автоматическое определение эмоций».

      Описание процесса.

      Импортируем необходимые модули из TensorFlow.

      Создаем модель, используя сверточные нейронные сети. Модель принимает входные данные в виде изображения размером 48х48х1 пикселей. Слои Conv2D, BatchNormalization и MaxPooling2D используются для извлечения признаков из изображения. Слой Flatten преобразует полученные признаки в одномерный вектор. Слои Dense, BatchNormalization и Dropout используются для классификации эмоций на 7 категорий (счастье, грусть, злость и т.д.).

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

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

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

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

      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 эпох с валидацией на проверочных данных.

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

Итог