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


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


跟蹤 TPU 嵌入規範的類。

用法

tf.compat.v1.estimator.tpu.experimental.EmbeddingConfigSpec(
    feature_columns=None, optimization_parameters=None, clipping_limit=None,
    pipeline_execution_with_tensor_core=False,
    experimental_gradient_multiplier_fn=None, feature_to_config_dict=None,
    table_to_config_dict=None, partition_strategy='div',
    profile_data_directory=None
)

參數

  • feature_columns 模型使用的所有嵌入 FeatureColumn
  • optimization_parameters AdagradParameters , AdamParametersStochasticGradientDescentParameters 的實例。此優化器將應用於 feature_columns 指定的所有嵌入變量。
  • clipping_limit (可選)裁剪限製(絕對值)。
  • pipeline_execution_with_tensor_core 將此設置為 True 可以加快訓練速度,但如果步驟 N 和步驟 N+1 涉及相同的嵌入 ID 集,則訓練模型會有所不同。詳情請參閱tpu_embedding_configuration.proto
  • experimental_gradient_multiplier_fn (可選)將全局步長作為輸入的 Fn 返回所有嵌入梯度的當前乘數。
  • feature_to_config_dict 將函數名稱映射到類 FeatureConfig 的實例的字典。必須指定features_columns 或一對feature_to_config_dicttable_to_config_dict
  • table_to_config_dict 將函數名稱映射到類 TableConfig 的實例的字典。必須指定features_columns 或一對feature_to_config_dicttable_to_config_dict
  • partition_strategy 一個字符串,確定張量如何分片到 tpu 主機。有關詳細信息,請參閱tf.nn.safe_embedding_lookup_sparse。允許的值為 "div""mod"'. If "mod" is used, evaluation and exporting the model to CPU will not work as expected. </td> </tr><tr> <td> profile_data_directory` 存儲嵌入查找統計信息的目錄。這些統計數據匯總了有關嵌入查找操作的輸入的信息,特別是每個示例的平均嵌入 ID 數量以及嵌入 ID 在整個係統中的負載平衡情況。查找統計信息在 TPU 初始化期間用於嵌入表分區。查找統計信息的收集是在運行時通過分析嵌入輸入來完成的,隻有一小部分輸入樣本被分析以最小化主機 CPU 開銷。一旦對合適數量的樣本進行了分析,查找統計信息通常會在 TPU 訓練循環結束時保存到配置文件數據目錄中的 table-specific 文件中。每個表對應的文件名是通過散列表特定參數(例如,表名和特征數量)和全局配置參數(例如,分片策略和任務計數)獲得的。可以在多個模型之間共享相同的配置文件數據目錄,以重用嵌入查找統計信息。

拋出

  • ValueError 如果未指定 feature_columns。
  • TypeError 如果特征列的類型不正確(_SUPPORTED_FEATURE_COLUMNS、_TPU_EMBEDDING_COLUMN_CLASSES 或 _EMBEDDING_COLUMN_CLASSES 之一)。
  • ValueError 如果 optimization_parameters 不是必需的類型之一。

屬性

  • feature_columns 字段編號 0 的 namedtuple 別名
  • tensor_core_feature_columns 字段編號 1 的 namedtuple 別名
  • optimization_parameters 字段編號 2 的 namedtuple 別名
  • clipping_limit 字段編號 3 的 namedtuple 別名
  • pipeline_execution_with_tensor_core 字段編號 4 的 namedtuple 別名
  • experimental_gradient_multiplier_fn 字段編號 5 的 namedtuple 別名
  • feature_to_config_dict 字段編號 6 的 namedtuple 別名
  • table_to_config_dict 字段編號 7 的 namedtuple 別名
  • partition_strategy 字段編號 8 的 namedtuple 別名
  • profile_data_directory 字段編號 9 的 namedtuple 別名

遷移到 TF2

警告:這個 API 是為 TensorFlow v1 設計的。繼續閱讀有關如何從該 API 遷移到本機 TensorFlow v2 等效項的詳細信息。見TensorFlow v1 到 TensorFlow v2 遷移指南有關如何遷移其餘代碼的說明。

TPU Estimator 管理自己的 TensorFlow 圖和會話,因此與 TF2 行為不兼容。我們建議您遷移到較新的 tf.distribute.TPUStrategy 。有關詳細信息,請參閱 TPU 指南。

通過embedding_config_spec 參數將此類傳遞給tf.estimator.tpu.TPUEstimator。至少您需要指定 feature_columnsoptimization_parameters 。傳遞的特征列應使用 tf.tpu.experimental.embedding_columntf.tpu.experimental.shared_embedding_columns 的某種組合創建。

TPU 嵌入不支持任意 Tensorflow 優化器,並且您用於模型的主要優化器對於嵌入表變量將被忽略。相反,TPU 嵌入支持一組固定的預定義優化器,您可以從中選擇和設置參數。這些包括 adagrad、adam 和隨機梯度下降。每個受支持的優化器在 tf.tpu.experimental 命名空間中都有一個 Parameters 類。

column_a = tf.feature_column.categorical_column_with_identity(...)
column_b = tf.feature_column.categorical_column_with_identity(...)
column_c = tf.feature_column.categorical_column_with_identity(...)
tpu_shared_columns = tf.tpu.experimental.shared_embedding_columns(
    [column_a, column_b], 10)
tpu_non_shared_column = tf.tpu.experimental.embedding_column(
    column_c, 10)
tpu_columns = [tpu_non_shared_column] + tpu_shared_columns
...
def model_fn(features):
  dense_features = tf.keras.layers.DenseFeature(tpu_columns)
  embedded_feature = dense_features(features)
  ...

estimator = tf.estimator.tpu.TPUEstimator(
    model_fn=model_fn,
    ...
    embedding_config_spec=tf.estimator.tpu.experimental.EmbeddingConfigSpec(
        column=tpu_columns,
        optimization_parameters=(
            tf.estimator.tpu.experimental.AdagradParameters(0.1))))

相關用法


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