Spec-Zone.ru › TensorFlow 2.9

tf.keras.layers.Embedding

Просмотреть исходный код на GitHub

Преобразует положительные целые числа (индексы) в плотные векторы фиксированной размерности.

Наследует от: Layer, Module

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.keras.layers.Embedding

tf.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,
    **kwargs
)

Например: [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]

Этот слой может быть использован только для положительных целочисленных входных данных фиксированного диапазона. Слои предобработки tf.keras.layers.TextVectorization, tf.keras.layers.StringLookup и tf.keras.layers.IntegerLookup могут помочь подготовить входные данные для слоя Embedding.

Этот слой принимает tf.Tensor и tf.RaggedTensor входные данные. Он не может быть вызван с tf.SparseTensor входными данными.

Пример:

model = tf.keras.Sequential()
model.add(tf.keras.layers.Embedding(1000, 64, input_length=10))
# The model will take as input an integer matrix of size (batch,
# input_length), and the largest integer (i.e. word index) in the input
# should be no larger than 999 (vocabulary size).
# Now model.output_shape is (None, 10, 64), where `None` is the batch
# dimension.
input_array = np.random.randint(1000, size=(32, 10))
model.compile('rmsprop', 'mse')
output_array = model.predict(input_array)
print(output_array.shape)
(32, 10, 64)
Аргументы
input_dim Целое число. Размер словаря, т.е. максимальный целочисленный индекс + 1.
output_dim Целое число. Размерность плотного вложения.
embeddings_initializer Инициализатор для матрицы embeddings (см. keras.initializers).
embeddings_regularizer Функция регуляризации, применяемая к матрице embeddings (см. keras.regularizers).
embeddings_constraint Функция ограничения, применяемая к матрице embeddings (см. keras.constraints).
mask_zero Булево значение, указывает, является ли входное значение 0 специальным «заполняющим» значением, которое должно быть замаскировано. Это полезно при использовании рекуррентных слоёв, которые могут принимать входные данные переменной длины. Если это True, то все последующие слои в модели должны поддерживать маскирование, иначе будет выброшено исключение. Если mask_zero установлено в True, то индекс 0 не может быть использован в словаре (input_dim должен быть равен размеру словаря + 1).
input_length Длина последовательностей входных данных, если она постоянна. Этот аргумент необходим, если вы собираетесь соединять Flatten и Dense слои вверх по потоку (без него нельзя вычислить форму плотных выходных данных).

Форма входных данных:

2D тензор с формой: (batch_size, input_length).

Форма выходных данных:

3D тензор с формой: (batch_size, input_length, output_dim).

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

  • Вы, возможно, используете оптимизатор, который не поддерживает разреженные ядра видеокарты. В этом случае при обучении модели будет отображено сообщение об ошибке.
  • Матрица вложения может быть слишком большой, чтобы поместиться на вашей видеокарте. В этом случае отобразится ошибка «Недостаточно памяти» (OOM).

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

with tf.device('cpu:0'):
  embedding_layer = Embedding(...)
  embedding_layer.build()

Заранее созданный экземпляр embedding_layer может быть добавлен в модель Sequential (например, model.add(embedding_layer)), вызван в модели функционального типа (например, x = embedding_layer(x)) или использован в подклассированной модели.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/keras/layers/Embedding

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API