120 практических задач. Джейд Картер. Читать онлайн. Newlib. NEWLIB.NET

Автор: Джейд Картер
Издательство: Автор
Серия:
Жанр произведения:
Год издания: 2024
isbn:
Скачать книгу
последовательностей (padding)

      maxlen = 100 # Максимальная длина последовательности

      X = pad_sequences(sequences, maxlen=maxlen)

      # Разделение данных на обучающую и тестовую выборки

      X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.2, random_state=42)

      # Шаг 3: Построение модели LSTM

      model = models.Sequential()

      model.add(layers.Embedding(input_dim=10000, output_dim=128, input_length=maxlen))

      model.add(layers.LSTM(128, return_sequences=True))

      model.add(layers.LSTM(128, return_sequences=False))

      model.add(layers.Dense(1, activation='sigmoid'))

      # Шаг 4: Компиляция и обучение модели

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

      history = model.fit(X_train, y_train, epochs=10, batch_size=32,

      validation_data=(X_test, y_test))

      # Шаг 5: Оценка модели

      loss, accuracy = model.evaluate(X_test, y_test, verbose=2)

      print(f'\nТочность на тестовых данных: {accuracy}')

      # Визуализация процесса обучения

      plt.plot(history.history['accuracy'], label='Точность на обучающем наборе')

      plt.plot(history.history['val_accuracy'], label='Точность на валидационном наборе')

      plt.xlabel('Эпоха')

      plt.ylabel('Точность')

      plt.legend(loc='lower right')

      plt.show()

      ```

      Пояснение:

      1. Импорт библиотек: Импортируются необходимые библиотеки TensorFlow, Keras, pandas, matplotlib и другие.

      2. Подготовка данных: Загрузка данных из CSV файла, содержащего тексты и метки настроений. Тексты токенизируются с использованием `Tokenizer`, и последовательности приводятся к одинаковой длине с помощью `pad_sequences`.

      3. Построение модели LSTM: Модель строится с использованием слоя `Embedding` для преобразования токенов в плотные векторы, двух слоев LSTM для обработки последовательностей и одного полносвязного слоя для выдачи прогноза.

      – Слой Embedding:

      ```python

      model.add(layers.Embedding(input_dim=10000, output_dim=128, input_length=maxlen))

      ```

      Этот слой преобразует входные токены в плотные векторы размерности 128.

      – Первый слой LSTM:

      ```python

      model.add(layers.LSTM(128, return_sequences=True))

      ```

      Первый слой LSTM возвращает полную последовательность выходов, которая передается следующему слою LSTM.

      – Второй слой LSTM:

      ```python

      model.add(layers.LSTM(128, return_sequences=False))

      ```

      Второй слой LSTM возвращает только последний выходной элемент.

      – Выходной слой:

      ```python

      model.add(layers.Dense(1, activation='sigmoid'))

      ```

      Выходной слой с сигмоидной активацией для бинарной классификации настроений (позитивное или негативное).

      4. Компиляция и обучение модели: Модель компилируется с использованием оптимизатора Adam и функции потерь binary_crossentropy. Затем модель обучается на обучающей выборке.

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

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

      7. Создание простой GAN для генерации изображений

      – Задача: Генерация рукописных цифр (набор MNIST).

      Для создания простой генеративно-состязательной сети (GAN) для генерации рукописных цифр из набора данных MNIST можно использовать TensorFlow и Keras. В этом примере мы рассмотрим, как создать и обучить GAN для генерации изображений цифр.

      Шаги:

      1. Импорт библиотек и модулей.

      2. Подготовка