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.Tensors, tf.SparseTensors или tf.RaggedTensors, с той же структурой, что и feature_config. Входные данные будут приведены к типу tf.int32. Поддерживается только один тип из tf.SparseTensor или tf.RaggedTensor за один вызов. |
weights | Если не None, вложенная структура tf.Tensors, tf.SparseTensors или tf.RaggedTensors, соответствующая вышеуказанной, за исключением того, что тензоры должны быть типа 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