當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.tpu.experimental.embedding.TPUEmbedding.dequeue用法及代碼示例


用法

dequeue(
    name:Optional[Text] = None
)

參數

  • name 底層操作的名稱。

返回

  • 張量的嵌套結構,結構與feature_config相同

拋出

  • RuntimeError 如果在 TPUStrategy 下未創建對象或未構建對象時調用(通過手動調用 build 或調用 enqueue)。

獲取嵌入結果。

返回 tf.Tensor 對象的嵌套結構,將 feature_config 參數的結構與 TPUEmbedding 類匹配。張量的輸出形狀是 (*output_shape, dim) , dim 是對應的 TableConfig 的維度。對於output_shape,可以設置三個位置。

  1. FeatureConfig 在 init 函數中提供。
  2. Per_replica_output_shapes通過初始化tpu嵌入類後直接調用build方法。
  3. 從輸入特征的形狀自動檢測。這些地方的優先級是完全相同的順序。
strategy = tf.distribute.TPUStrategy(...)
with strategy.scope():
  embedding = tf.tpu.experimental.embedding.TPUEmbedding(...)

distributed_dataset = (
    strategy.distribute_datasets_from_function(
        dataset_fn=...,
        options=tf.distribute.InputOptions(
            experimental_fetch_to_device=False))
dataset_iterator = iter(distributed_dataset)

@tf.function
def training_step():
  def tpu_step(tpu_features):
    with tf.GradientTape() as tape:
      activations = embedding.dequeue()
      tape.watch(activations)

      loss = ... #  some computation involving activations

    embedding_gradients = tape.gradient(loss, activations)
    embedding.apply_gradients(embedding_gradients)

  embedding_features, tpu_features = next(dataset_iterator)
  embedding.enqueue(embedding_features, training=True)
  strategy.run(tpu_step, args=(tpu_features, ))

training_step()

傳遞給 TPUEmbedding 對象的實例。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.tpu.experimental.embedding.TPUEmbedding.dequeue。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。