tf.tpu.experimental.embedding.TPUEmbeddingV2
API среднего уровня TPUEmbedding, работающий на TPU с ускорителем sparse core.
tf.tpu.experimental.embedding.TPUEmbeddingV2(
feature_config: Union[tf.tpu.experimental.embedding.FeatureConfig, Iterable],
optimizer: Optional[tpu_embedding_v2_utils._Optimizer] = None,
pipeline_execution_with_tensor_core: bool = False
)
| Аргументы | |
|---|---|
feature_config | Вложенная структура конфигураций tf.tpu.experimental.embedding.FeatureConfig. |
optimizer | Экземпляр одного из объектов tf.tpu.experimental.embedding.SGD, tf.tpu.experimental.embedding.Adagrad или tf.tpu.experimental.embedding.Adam. Если объект создан не в контексте TPUStrategy, для него можно задать значение None, чтобы избежать создания переменных слотов оптимизатора. Это полезно для оптимизации использования памяти при экспорте модели для обслуживания, когда переменные слотов не нужны. |
pipeline_execution_with_tensor_core | Если значение равно True, вычисления встраиваний TPU будут выполняться параллельно с вычислениями TensorCore (и, следовательно, будут отставать на один шаг). Для повышения производительности задайте значение True. |
| Вызывает исключения | |
|---|---|
ValueError | Если оптимизатор не является одним из tf.tpu.experimental.embedding.(SGD, Adam или Adagrad) или None при создании в контексте TPUStrategy. |
RuntimeError | Если объект создан не в контексте TPUStrategy. |
| Атрибуты | |
|---|---|
embedding_table_shards | Возвращает словарь таблиц встраиваний с ключами TableConfig. |
embedding_tables | Возвращает словарь таблиц встраиваний с ключами TableConfig. |
variables | Возвращает словарь переменных с ключами TableConfig, а затем именами слотов. |
Методы
apply_gradients
apply_gradients(
gradients: Any, preserved_outputs: Dict[str, PartitionedCsrFormatTensor]
)
Применяет обновление градиентов к таблицам встраиваний.
Если в какой-либо позиции вложенной структуры передан градиент None, для этого признака применяется обновление градиента с нулевым градиентом. Для таких оптимизаторов, как SGD или Adagrad, это эквивалентно отсутствию обновления. При использовании lazy Adam и других оптимизаторов, применяемых разреженно и учитывающих затухание, убедитесь, что понимаете последствия применения нулевого градиента.
| Аргументы | |
|---|---|
gradients | Вложенная структура градиентов, структура которой соответствует feature_config, переданному этому объекту. |
preserved_outputs | Словарь объектов PartitionedCsrFormatTensor, полученный из второго выходного значения вызова поиска встраиваний. |
| Вызывает исключения | |
|---|---|
RuntimeError | если объект не построен. |
ValueError | Если передан градиент, не являющийся tf.Tensor и не-None, либо передан tf.Tensor неправильной формы. Также если размер любой последовательности в gradients не совпадает с размером соответствующей последовательности в feature_config. |
TypeError | Если тип любой последовательности в gradients не совпадает с типом соответствующей последовательности в feature_config. |
build
build()
Создает переменные и переменные слотов для встраиваний TPU.
dequeue
dequeue(
partitioned_tensors: Tuple[Dict[str, PartitionedCsrFormatTensor], int, int]
) -> Tuple[Any, Dict[str, PartitionedCsrFormatTensor]]
Выполняет поиск встраиваний.
embedding_lookup
embedding_lookup(
features: Any, weights: Optional[Any] = None
) -> Tuple[Any, Dict[str, PartitionedCsrFormatTensor]]
Выполняет поиск встраиваний для входного признака.
| Аргументы | |
|---|---|
features | Вложенная структура объектов tf.Tensor, tf.SparseTensor или tf.RaggedTensor с той же структурой, что и у feature_config. Тип входных данных будет понижен до tf.int32. В одном вызове поддерживается только один тип: tf.SparseTensor или tf.RaggedTensor. |
weights | Если значение не равно None, вложенная структура объектов tf.Tensor, tf.SparseTensor или tf.RaggedTensor, соответствующая указанной выше, за исключением того, что тензоры должны иметь тип float (и их тип будет понижен до tf.float32). Для объектов tf.SparseTensor предполагается, что indices одинаковы для соответствующих элементов из features; аналогично для объектов tf.RaggedTensor предполагается, что значения row_splits совпадают. |
| Вызывает исключения | |
|---|---|
ValueError | Если входной признак не имеет тип Tensor, SparseTensor или RaggedTensor. |
TypeError | Если тип любой последовательности в features не совпадает с типом соответствующей последовательности в feature_config. То же относится к weights, если значение не равно None. |
| Возвращает | |
|---|---|
packed_activations | Результаты поиска встраиваний, упакованные в такую же последовательность, как входной признак. |
packed_output | Словарь объектов PartitionedCsrFormatTensors. |
enqueue
enqueue(
features: Any, weights: Optional[Any] = None, device: Optional[str] = None
) -> Any
Предварительная обработка признаков на хосте.
preprocess_features
@staticmethod
preprocess_features(
num_replicas_in_sync: int,
max_ids_per_chip_per_sample: int,
max_minibatches_per_sc: int,
num_sc_per_chip: int,
num_sc_shards: int,
stacked_table_to_tables: Dict[str, Any],
table_to_stacked_table_offset: Dict[str, Tuple[str, int, int]],
table_to_sample_count: Dict[str, int],
feature_to_sample_offset: Dict[str, int],
flat_features: Any,
flat_inputs: Any,
flat_weights: Optional[Any] = None
) -> Any
Функция предварительной обработки признаков.
__call__
__call__(
features: Any, weights: Optional[Any] = None
) -> Tuple[Any, Dict[str, PartitionedCsrFormatTensor]]
Вызывает API среднего уровня для выполнения поиска встраиваний.
© 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/tpu/experimental/embedding/TPUEmbeddingV2