Перейти к содержанию

Embedding-слои

Embedding

keras.layers.Embedding(input_dim, output_dim, embeddings_initializer=’uniform’, embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)

Преобразовывает положительные целые числа (индексы) в плотные (dense) векторы фиксированного размера, например [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]

Этот слой может использоваться только как первый слой в модели.

Example

model = Sequential()

model.add(Embedding(1000, 64, input_length=10))

# модель принимает на вход матрицу целых чисел размерностью batch x input_length.

# наибольшее целое число (т.е. индекс слова) подаваемое на вход должно быть

# не больше 999 (поскольку размер словаря задан 1000).

# model.output_shape == (None, 10, 64), где None — размерность batch-а.

input_array = np.random.randint(1000, size=(32, 10))

model.compile(‘rmsprop’, ‘mse’)

output_array = model.predict(input_array)assert output_array.shape == (32, 10, 64)

Аргументы

  • input_dim: int > 0. Размер словаря, т.е. максимальный целочисленный индекс в входном векторе + 1.
  • output_dim: int >= 0. Размер плотного (dense) embedding-а.
  • embeddings_initializer: Инициализатор матрицы embedding-а (см. инициализаторы).
  • embeddings_regularizer: Функция регуляризатора, применяемая к матрице embedding-а (см. регулялизатор).
  • active_regularizer: Функция регуляризатора, применяемая к выходу слоя (его активационной функции). (см. регуляризатор).
  • embeddings_constraint: Функция ограничения, применяемая к матрице embedding-а (см. ограничения).
  • mask_zero: Если входное значение 0 и оно является специальным значением («padding») для выравнивания длины входных векторов, то нужно сообщить об этом модели. Операция исключения 0-х значений при расчете матрицы embedding-а называется маскированием (masking). Параметр необходимо использовать для рекуррентных (recurrent) слоев, которым на вход могут подаваться данные разной длины. Если mask_zero установлено в True, то все последующие слои в модели должны поддерживать masking, иначе возникнет исключение. Если значение mask_zero равно True, то индекс 0 нельзя использовать в словаре (input_dim должен быть равен размеру словаря + 1).
  • input_length: Длина входных последовательностей, когда она одинаковая. Этот аргумент необходим, если к выходу embedding слоя подключается Flatten, а затем Dense слой (без этого нельзя вычислить размерность выхода). 

Входная размерность (shape)

2D тензор с размерностью (shape): (batch_size, sequence_length).

Выходная размерность (shape)

3D тензор с размерностью (shape): (batch_size, sequence_length, output_dim).

Ссылки

  • Теоретически обоснованное применение дропаута в рекуррентных нейронных сетях

Next  Previous