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]
)
Примечание: Этот класс предназначен для использования с таблицами встраивания, обученными на 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, чтобы избежать создания переменных слотов оптимизатора, что полезно для оптимизации использования памяти при экспорте модели для обслуживания, где переменные слотов не нужны. |
| Исключения | |
|---|---|
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ов, соответствующая вышеупомянутой, за исключением того, что тензоры должны иметь тип с плавающей точкой (и они будут приведены к типу 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/versions/r2.9/api_docs/python/tf/tpu/experimental/embedding/TPUEmbeddingForServing