当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。