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


Python tf.compat.v1.tpu.experimental.embedding_column用法及代碼示例


tf.compat.v1.feature_column.embedding_column 的 TPU 版本。

用法

tf.compat.v1.tpu.experimental.embedding_column(
    categorical_column, dimension, combiner='mean', initializer=None,
    max_sequence_length=0, learning_rate_fn=None, embedding_lookup_device=None,
    tensor_core_shape=None, use_safe_embedding_lookup=True
)

參數

  • categorical_column categorical_column_with_identity , weighted_categorical_column , categorical_column_with_vocabulary_file , categorical_column_with_vocabulary_list , sequence_categorical_column_with_identity , sequence_categorical_column_with_vocabulary_file , sequence_categorical_column_with_vocabulary_list 返回的分類列
  • dimension 指定嵌入維度的整數,必須 > 0。
  • combiner 一個字符串,指定在非序列列的單行中有多個條目時如何減少。有關詳細信息,請參閱tf.feature_column.embedding_column
  • initializer 用於嵌入變量初始化的變量初始化函數。如果未指定,則默認為 tf.compat.v1.truncated_normal_initializer ,平均值為 0.0 和標準差 1/sqrt(dimension)
  • max_sequence_length 指定最大序列長度的非負整數。任何比這更短的序列都將被填充 0 個嵌入,任何更長的序列都將被截斷。這對於序列特征必須為正,對於非序列特征必須為 0。
  • learning_rate_fn 一個函數,它采用全局步驟並返回嵌入表的學習率。如果您打算對多個嵌入表使用相同的學習率,請確保您將完全相同的 python 函數傳遞給embedding_column的所有調用,否則性能可能會受到影響。
  • embedding_lookup_device 運行嵌入查找的設備。有效選項為 "cpu"、"tpu_tensor_core" 和 "tpu_embedding_core"。如果指定 "tpu_tensor_core",則必須提供 tensor_core_shape。如果未指定,默認行為是在 "tpu_embedding_core" 上嵌入查找以進行訓練,在 "cpu" 上嵌入查找以進行推理。訓練的有效選項:["tpu_embedding_core", "tpu_tensor_core"] 服務的有效選項:["cpu", "tpu_tensor_core"] 對於訓練,tpu_embedding_core 適用於大型嵌入詞匯(>1M),否則,tpu_tensor_core通常就足夠了。對於服務,在服務期間對 tpu_tensor_core 進行嵌入查找是一種在出現瓶頸的情況下減少主機 CPU 使用率的方法。
  • tensor_core_shape 如果提供,一個整數列表,它指定預期的密集形狀以在 TensorCore 上運行嵌入查找此函數。批處理維度可以保留為 None 或 -1 以指示動態形狀。當前僅支持 2 級形狀。
  • use_safe_embedding_lookup 如果為真,則使用 safe_embedding_lookup_sparse 而不是 embedding_lookup_sparse。 safe_embedding_lookup_sparse 確保沒有空行,並且所有權重和 id 都是正數,但代價是額外的計算成本。這僅適用於 rank 2 (NxM) 形狀的輸入張量。默認為 true,如果不需要上述檢查,請考慮關閉。請注意,盡管輸出結果可能為 0 或省略,但具有空行不會觸發任何錯誤。

返回

  • 一個_TPUEmbeddingColumnV2

拋出

  • ValueError 如果 dimension 不 > 0。
  • ValueError 如果指定了 initializer 但不可調用。

請注意,tf.tpu.experimental.embedding_column 的接口與 tf.compat.v1.feature_column.embedding_column 的接口不同:不支持以下參數:ckpt_to_load_from , tensor_name_in_ckpt , max_normtrainable

如果您想使用 TPU 通過 TPU 嵌入來加速嵌入查找,請使用此函數代替 tf.compat.v1.feature_column.embedding_column

column = tf.feature_column.categorical_column_with_identity(...)
tpu_column = tf.tpu.experimental.embedding_column(column, 10)
...
def model_fn(features):
  dense_feature = tf.keras.layers.DenseFeature(tpu_column)
  embedded_feature = dense_feature(features)
  ...

estimator = tf.estimator.tpu.TPUEstimator(
    model_fn=model_fn,
    ...
    embedding_config_spec=tf.estimator.tpu.experimental.EmbeddingConfigSpec(
      column=[tpu_column],
      ...))

相關用法


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