tf.tpu.experimental.embedding.TPUEmbeddingForServing
API среднего уровня TPUEmbedding, работающий на CPU для обслуживания.
tf.tpu.experimental.embedding.TPUEmbeddingForServing(
feature_config: Union[tf.tpu.experimental.embedding.FeatureConfig, Iterable],
optimizer: Optional[tpu_embedding_v2_utils._Optimizer],
experimental_sparsecore_restore_info: Optional[Dict[str, Any]] = None
)
Примечание: Этот класс предназначен для таблиц эмбеддингов, обучаемых на TPU и обслуживаемых на CPU. Поэтому класс следует инициализировать только в стратегии без TPU. В противном случае будет вызвана ошибка.
Сначала можно обучить модель с помощью класса TPUEmbedding и сохранить контрольную точку. Затем используйте этот класс, чтобы восстановить контрольную точку для обслуживания.
Сначала обучите модель и сохраните контрольную точку.
model = model_fn(...)
strategy = tf.distribute.TPUStrategy(...)
with strategy.scope():
embedding = tf.tpu.experimental.embedding.TPUEmbedding(
feature_config=feature_config,
optimizer=tf.tpu.experimental.embedding.SGD(0.1))
# Your custom training code.
checkpoint = tf.train.Checkpoint(model=model, embedding=embedding)
checkpoint.save(...)
Затем восстановите контрольную точку и выполните обслуживание.
# Restore the model on CPU.
model = model_fn(...)
embedding = tf.tpu.experimental.embedding.TPUEmbeddingForServing(
feature_config=feature_config,
optimizer=tf.tpu.experimental.embedding.SGD(0.1))
checkpoint = tf.train.Checkpoint(model=model, embedding=embedding)
checkpoint.restore(...)
result = embedding(...)
table = embedding.embedding_table
Примечание: Этот класс также можно использовать для обучения эмбеддингов на CPU. Однако для поддержания согласованности переменных слотов необходимо преобразовать оптимизатор Keras в оптимизаторы эмбеддингов.
| Аргументы | |
|---|---|
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, чтобы избежать создания переменных слотов оптимизатора. Это полезно для оптимизации расхода памяти при экспорте модели для обслуживания, когда переменные слотов не требуются. |
experimental_sparsecore_restore_info | Сведения об обучении на разреженном ядре, необходимые для восстановления из контрольной точки при обслуживании (например, количество используемых устройств TPU num_tpu_devices.) |
| Вызывает исключения | |
|---|---|
RuntimeError | Если экземпляр создан в TPUStrategy. |
| Атрибуты | |
|---|---|
embedding_tables | Возвращает словарь таблиц эмбеддингов с ключами TableConfig. |
Методы
build
build()
Создает переменные и переменные слотов для эмбеддингов TPU.
embedding_lookup
embedding_lookup(
features: Any, weights: Optional[Any] = None
) -> Any
Выполняет стандартные операции поиска на CPU.
| Аргументы | |
|---|---|
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 одинаковы. |
| Возвращает | |
|---|---|
| Вложенную структуру тензоров с той же структурой, что и входные признаки. |
__call__
__call__(
features: Any, weights: Optional[Any] = None
) -> Any
Вызывает 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/TPUEmbeddingForServing