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


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