tf.nn.embedding_lookup

Looks up embeddings for the given ids from a list of tensors.

Used in the notebooks

Used in the guideUsed in the tutorials

This function is used to perform parallel lookups on the list of tensors in params. It is a generalization of tf.gather, where params is interpreted as a partitioning of a large embedding tensor.

If len(params) > 1, each element id of ids is partitioned between the elements of params according to the "div" partition strategy, which means we assign ids to partitions in a contiguous manner. For instance, 13 ids are split across 5 partitions as: [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10], [11, 12]].

If the id space does not evenly divide the number of partitions, each of the first (max_id + 1) % len(params) partitions will be assigned one more id.

The results of the lookup are concatenated into a dense tensor. The returned tensor has shape shape(ids) + shape(params)[1:].

paramsA single tensor representing the complete embedding tensor, or a list of tensors all of same shape except for the first dimension, representing sharded embedding tensors following "div" partition strategy.
idsA Tensor with type int32 or int64 containing the ids to be looked up in params.
max_normIf not None, each embedding is clipped if its l2-norm is larger than this value.
nameA name for the operation (optional).

A Tensor with the same type as the tensors in params.

For instance, if params is a 5x2 matrix:

[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]

or a list of matrices:

params[0]: [[1, 2], [3, 4]]
params[1]: [[5, 6], [7, 8]]
params[2]: [[9, 10]]

and ids is:

[0, 3, 4]

The output will be a 3x2 matrix:

[[1, 2], [7, 8], [9, 10]]

ValueErrorIf params is empty.