Шаг 94.
Глубокое обучение на Python. ... . Классификация отзывов к фильмам: пример бинарной классификации. Подготовка данных

    На этом шаге мы рассмотрим особенности реализации такой подготовки.

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

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


Пример 4.3. Кодирование последовательностей целых чисел в бинарную матрицу
import numpy as np

def vectorize_sequences(sequences, dimension=10000): 
  # Создание матрицы с формой (len(sequences), dimension), 
  # заполненной нулями
  results = np.zeros((len(sequences), dimension)) 
  for i, sequence in enumerate(sequences): 
    for j in sequence: 
      # Запись единицы в элемент с данным индексом
      results[i, j] = 1. 
  return results

# Векторизованные обучающие данные
x_train = vectorize_sequences(train_data)
# Векторизованные контрольные данные
x_test = vectorize_sequences(test_data)

    Вот как теперь выглядят образцы:


print(x_train[0])

[0. 1. 1. ... 0. 0. 0.]

    Нам также нужно векторизовать метки, что делается очень просто:


y_train = np.asarray(train_labels).astype('float32')
y_test = np.asarray(test_labels).astype('float32')

    Теперь данные готовы к передаче в нейронную сеть.

    На следующем шаге мы рассмотрим конструирование модели.




Предыдущий шаг Содержание Следующий шаг