Partial TPU Embedding layer.
tfrs.experimental.layers.embedding.PartialTPUEmbedding(
feature_config,
optimizer: tf.keras.optimizers.Optimizer,
pipeline_execution_with_tensor_core: bool = False,
batch_size: Optional[int] = None,
size_threshold: Optional[int] = 10000
) -> None
This layer is composed of tfrs.layers.embedding.TPUEmbedding
and
tf.keras.layers.Embedding
embedding layers. When training on TPUs, it is
preferable to use TPU Embedding layers for large tables (as they are sharded
accross TPU cores) and Keras embedding layer for small tables.
For tables with vocab sizes less than size_threshold
a Keras embedding
layer will be used, above that threshold a TPU embedding layer will be used.
This layer will be applied on a dictionary of feature_name, categorical_tensor pairs and return a dictionary of string-to-tensor of feature_name, embedded_value pairs.
Args | |
---|---|
feature_config
|
A nested structure of
tf.tpu.experimental.embedding.FeatureConfig configs.
|
optimizer
|
An optimizer used for TPU embeddings. |
pipeline_execution_with_tensor_core
|
If True, the TPU embedding computations will overlap with the TensorCore computations (and hence will be one step old with potential correctness drawbacks). Set to True for improved performance. |
batch_size
|
If set, this will be used as the global batch size and override the autodetection of the batch size from the layer's input. This is necesarry if all inputs to the layer's call are SparseTensors. |
size_threshold
|
A threshold for table sizes below which a Keras embedding
layer is used, and above which a TPU embedding layer is used.
Set size_threshold=0 to use TPU embedding for all tables and
size_threshold=None to use only Keras embeddings.
|
Attributes | |
---|---|
keras_embedding_layers
|
Returns a dictionary mapping feature names to Keras embedding layers. |
tpu_embedding
|
Returns TPUEmbedding or None if only Keras embeddings are used.
|
Methods
call
call(
inputs: Dict[str, Tensor]
) -> Dict[str, tf.Tensor]
Computes the output of the embedding layer.
It expects a string-to-tensor (or SparseTensor/RaggedTensor) dict as input, and outputs a dictionary of string-to-tensor of feature_name, embedded_value pairs. Note that SparseTensor/RaggedTensor are only supported for TPUEmbedding and are not supported for Keras embeddings.
Args | |
---|---|
inputs
|
A string-to-tensor (or SparseTensor/RaggedTensor) dictionary. |
Returns | |
---|---|
output
|
A dictionary of string-to-tensor of feature_name, embedded_value pairs. |
Raises | |
---|---|
ValueError if no tf.Tensor is passed to a Keras embedding layer. |