tf.nn.embedding_lookup
Stay organized with collections
Save and categorize content based on your preferences.
Looks up embeddings for the given ids
from a list of tensors.
tf.nn.embedding_lookup(
params, ids, max_norm=None, name=None
)
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:]
.
Args |
params
|
A 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.
|
ids
|
A Tensor with type int32 or int64 containing the ids to be looked
up in params .
|
max_norm
|
If not None , each embedding is clipped if its l2-norm is larger
than this value.
|
name
|
A name for the operation (optional).
|
Returns |
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]]
|
Raises |
ValueError
|
If params is empty.
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2023-10-06 UTC.
[null,null,["Last updated 2023-10-06 UTC."],[],[],null,["# tf.nn.embedding_lookup\n\n\u003cbr /\u003e\n\n|---------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/ops/embedding_ops.py#L335-L398) |\n\nLooks up embeddings for the given `ids` from a list of tensors. \n\n tf.nn.embedding_lookup(\n params, ids, max_norm=None, name=None\n )\n\nThis function is used to perform parallel lookups on the list of tensors in\n`params`. It is a generalization of [`tf.gather`](../../tf/gather), where `params` is\ninterpreted as a partitioning of a large embedding tensor.\n\nIf `len(params) \u003e 1`, each element `id` of `ids` is partitioned between the\nelements of `params` according to the \"div\" partition strategy, which means we\nassign ids to partitions in a contiguous manner. For instance, 13 ids are\nsplit across 5 partitions as:\n`[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10], [11, 12]]`.\n\nIf the id space does not evenly divide the number of partitions, each of the\nfirst `(max_id + 1) % len(params)` partitions will be assigned one more id.\n\nThe results of the lookup are concatenated into a dense\ntensor. The returned tensor has shape `shape(ids) + shape(params)[1:]`.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `params` | A 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. |\n| `ids` | A `Tensor` with type `int32` or `int64` containing the ids to be looked up in `params`. |\n| `max_norm` | If not `None`, each embedding is clipped if its l2-norm is larger than this value. |\n| `name` | A name for the operation (optional). |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A `Tensor` with the same type as the tensors in `params`. \u003cbr /\u003e 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]] \u003cbr /\u003e ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|--------------|-----------------------|\n| `ValueError` | If `params` is empty. |\n\n\u003cbr /\u003e"]]