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 (Low-Rank Adaptation) с указанным рангом. LoRA устанавливает матрицу вложений слоя в режим нетренируемого и заменяет ее дельтой над исходной матрицей, полученной путем умножения двух тренируемых матриц меньшего ранга. Это может быть полезно для уменьшения затрат вычислений при дообучении больших слоев вложений. Вы также можете включить LoRA в существующий слой Embedding, вызвав layer.enable_lora(rank). |
| Форма входных данных | |
|---|---|
2D тензор с формой: (batch_size, input_length). |
| Форма выходных данных | |
|---|---|
3D тензор с формой: (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, способным восстановить тот же слой из словаря конфигурации. Он не обрабатывает соединение слоев (это обрабатывает сеть), а также веса (это обрабатывает 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