tf.tpu.experimental.embedding.serving_embedding_lookup
Применяет стандартные операции поиска с конфигурациями tf.tpu.experimental.embedding.
tf.tpu.experimental.embedding.serving_embedding_lookup(
inputs: Any,
weights: Optional[Any],
tables: Dict[tf.tpu.experimental.embedding.TableConfig, tf.Variable],
feature_config: Union[tf.tpu.experimental.embedding.FeatureConfig, Iterable]
) -> Any
Эта функция — вспомогательная: она позволяет использовать объекты конфигурации tf.tpu.experimental.embedding со стандартными функциями поиска. Ее можно использовать при экспорте модели, в которой применяется tf.tpu.experimental.embedding.TPUEmbedding, для обслуживания на CPU. В частности, tf.tpu.experimental.embedding.TPUEmbedding поддерживает поиск только на TPU и не должна входить в граф обслуживания.
Обратите внимание, что параметры, относящиеся к TPU (например, max_sequence_length), в объектах конфигурации игнорируются.
В следующем примере мы берем обученную модель (контекст см. в документации по tf.tpu.experimental.embedding.TPUEmbedding) и создаем сохраненную модель с функцией обслуживания, которая выполняет поиск эмбеддингов и передает результаты вашей модели:
model = model_fn(...)
embedding = tf.tpu.experimental.embedding.TPUEmbedding(
feature_config=feature_config,
batch_size=1024,
optimizer=tf.tpu.experimental.embedding.SGD(0.1))
checkpoint = tf.train.Checkpoint(model=model, embedding=embedding)
checkpoint.restore(...)
@tf.function(input_signature=[{'feature_one': tf.TensorSpec(...),
'feature_two': tf.TensorSpec(...),
'feature_three': tf.TensorSpec(...)}])
def serve_tensors(embedding_features):
embedded_features = tf.tpu.experimental.embedding.serving_embedding_lookup(
embedding_features, None, embedding.embedding_tables,
feature_config)
return model(embedded_features)
model.embedding_api = embedding
tf.saved_model.save(model,
export_dir=...,
signatures={'serving_default': serve_tensors})
Примечание: Важно присвоить объект API эмбеддингов члену вашей модели, посколькуtf.saved_model.saveподдерживает сохранение переменных только как одного объектаTrackable. Поскольку веса модели находятся вmodel, а таблица эмбеддингов управляется с помощьюembedding, мы присваиваемembeddingатрибутуmodel, чтобы tf.saved_model.save мог найти переменные эмбеддингов.
Примечание: Та же функцияserve_tensorsи вызовtf.saved_model.saveбудут работать непосредственно во время обучения.
| Аргументы | |
|---|---|
inputs | вложенная структура объектов Tensor, SparseTensor или RaggedTensor. |
weights | вложенная структура объектов Tensor, SparseTensor или RaggedTensor либо None, если веса не используются. Если значение не равно None, структура должна соответствовать структуре inputs, но отдельные элементы могут иметь значение None. |
tables | словарь, сопоставляющий объекты TableConfig с объектами Variable. |
feature_config | вложенная структура объектов FeatureConfig с той же структурой, что и у inputs. |
| Возвращает | |
|---|---|
| Вложенная структура объектов Tensor с той же структурой, что и у inputs. |
© 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/serving_embedding_lookup