tf.keras.layers.Embedding
Преобразует положительные целые числа (индексы) в плотные векторы фиксированного размера.
Наследуется от: Layer, Operation
tf.keras.layers.Embedding(
input_dim,
output_dim,
embeddings_initializer='uniform',
embeddings_regularizer=None,
embeddings_constraint=None,
mask_zero=False,
weights=None,
lora_rank=None,
**kwargs
)
Используется в блокнотах
| Используется в руководстве | Используется в учебных материалах |
|---|---|
например, [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
Этот слой можно использовать только для входных данных в виде положительных целых чисел из фиксированного диапазона.
Пример:
model = keras.Sequential()
model.add(keras.layers.Embedding(1000, 64))
# 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). |
weights | Необязательная матрица чисел с плавающей точкой размера (input_dim, output_dim). Начальные значения эмбеддингов. |
lora_rank | Необязательное целое число. Если задано, прямой проход слоя будет реализовывать LoRA (низкоранговую адаптацию) с указанным рангом. LoRA переводит матрицу эмбеддингов слоя в режим без обучения и заменяет её приращением относительно исходной матрицы, полученным путем умножения двух обучаемых матриц меньшего ранга. Это может помочь снизить вычислительные затраты при тонкой настройке больших слоев эмбеддингов. Вы также можете включить LoRA для существующего слоя Embedding, вызвав layer.enable_lora(rank). |
| Форма входных данных | |
|---|---|
Двумерный тензор формы: (batch_size, input_length). |
| Форма выходных данных | |
|---|---|
Трехмерный тензор формы: (batch_size, input_length, output_dim). |
| Атрибуты | |
|---|---|
embeddings | |
input | Получает входной тензор (тензоры) символьной операции. Возвращает только тензор (тензоры), соответствующий первому вызову операции. |
output | Получает выходной тензор (тензоры) слоя. Возвращает только тензор (тензоры), соответствующий первому вызову операции. |
Методы
enable_lora
enable_lora(
rank, a_initializer='he_uniform', b_initializer='zeros'
)
from_config
@classmethod
from_config(
config
)
Создает слой на основе его конфигурации.
Этот метод является обратным по отношению к get_config и позволяет создать такой же слой из словаря конфигурации. Он не обрабатывает связи между слоями (за это отвечает Network) и веса (за это отвечает set_weights).
| Аргументы | |
|---|---|
config | Словарь Python, обычно являющийся результатом вызова get_config. |
| Возвращает | |
|---|---|
| Экземпляр слоя. |
quantized_build
quantized_build(
input_shape, mode
)
symbolic_call
symbolic_call(
*args, **kwargs
)
| Переменные класса | |
|---|---|
| QUANTIZATION_MODE_ERROR_TEMPLATE | "Invalid quantization mode. Expected 'int8'. Received: quantization_mode={mode}" |
© 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/api_docs/python/tf/keras/layers/Embedding