跟踪 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
,AdamParameters
或StochasticGradientDescentParameters
的实例。此优化器将应用于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_dict
和table_to_config_dict
。 -
table_to_config_dict
将函数名称映射到类TableConfig
的实例的字典。必须指定features_columns 或一对feature_to_config_dict
和table_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_columns
和 optimization_parameters
。传递的特征列应使用 tf.tpu.experimental.embedding_column
和 tf.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))))
相关用法
- Python tf.compat.v1.estimator.tpu.RunConfig用法及代码示例
- Python tf.compat.v1.estimator.tpu.TPUEstimator用法及代码示例
- Python tf.compat.v1.estimator.DNNEstimator用法及代码示例
- Python tf.compat.v1.estimator.experimental.KMeans用法及代码示例
- Python tf.compat.v1.estimator.regressor_parse_example_spec用法及代码示例
- Python tf.compat.v1.estimator.BaselineRegressor用法及代码示例
- Python tf.compat.v1.estimator.inputs.numpy_input_fn用法及代码示例
- Python tf.compat.v1.estimator.LinearRegressor用法及代码示例
- Python tf.compat.v1.estimator.BaselineEstimator用法及代码示例
- Python tf.compat.v1.estimator.BaselineClassifier用法及代码示例
- Python tf.compat.v1.estimator.LinearClassifier用法及代码示例
- Python tf.compat.v1.estimator.DNNLinearCombinedRegressor用法及代码示例
- Python tf.compat.v1.estimator.DNNClassifier用法及代码示例
- Python tf.compat.v1.estimator.DNNRegressor用法及代码示例
- Python tf.compat.v1.estimator.DNNLinearCombinedEstimator用法及代码示例
- Python tf.compat.v1.estimator.Estimator用法及代码示例
- Python tf.compat.v1.estimator.LinearEstimator用法及代码示例
- Python tf.compat.v1.estimator.classifier_parse_example_spec用法及代码示例
- Python tf.compat.v1.estimator.DNNLinearCombinedClassifier用法及代码示例
- Python tf.compat.v1.enable_eager_execution用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.compat.v1.estimator.tpu.experimental.EmbeddingConfigSpec。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。