使用 TPU 嵌入的 Adam 优化参数。
用法
tf.tpu.experimental.embedding.Adam(
learning_rate:Union[float, Callable[[], float]] = 0.001,
beta_1:float = 0.9,
beta_2:float = 0.999,
epsilon:float = 1e-07,
lazy_adam:bool = True,
sum_inside_sqrt:bool = True,
use_gradient_accumulation:bool = True,
clip_weight_min:Optional[float] = None,
clip_weight_max:Optional[float] = None,
weight_decay_factor:Optional[float] = None,
multiply_weight_decay_factor_by_learning_rate:bool = None,
slot_variable_creation_fn:Optional[SlotVarCreationFnType] = None,
clipvalue:Optional[ClipValueType] = None
)
参数
-
learning_rate
学习率。它应该是一个浮点值或一个不带参数的可调用动态学习率。 -
beta_1
一个浮点值。一阶矩估计的 index 衰减率。 -
beta_2
一个浮点值。二阶矩估计的 index 衰减率。 -
epsilon
用于数值稳定性的小常数。 -
lazy_adam
使用懒惰的亚当而不是亚当。懒惰的亚当训练得更快。 -
sum_inside_sqrt
如果这是真的,Adam 更新公式将从m / (sqrt(v) + epsilon)
更改为m / sqrt(v + epsilon**2)
。此选项提高了 TPU 训练的性能,预计不会损害模型质量。 -
use_gradient_accumulation
将此设置为False
会使嵌入梯度计算的准确性降低但速度更快。 -
clip_weight_min
要裁剪的最小值;无意味着-无穷大。 -
clip_weight_max
要裁剪的最大值;无意味着+无穷大。 -
weight_decay_factor
要应用的重量衰减量; None 表示权重没有衰减。 -
multiply_weight_decay_factor_by_learning_rate
如果为真,weight_decay_factor
将乘以当前学习率。 -
slot_variable_creation_fn
如果您希望直接控制槽变量的创建,请将其设置为一个可调用的,带有三个参数:一个表变量、一个为其创建的槽名称列表和一个初始化器列表。此函数应返回一个 dict,其中插槽名称作为键,创建的变量作为值,其类型与表变量匹配。当设置为无(默认值)时,使用内置变量创建。 -
clipvalue
控制渐变的剪裁。设置为单个正标量值以获取剪裁,或者设置为一组标量值(最小值、最大值)以设置单独的最大值或最小值。如果两个条目之一为无,则不会裁剪该方向。
通过 optimizer
参数将此传递给 tf.tpu.experimental.embedding.TPUEmbedding
以设置全局优化器及其参数:
注意:默认情况下,此优化器是惰性的,即它不会将零的梯度更新应用于未查找的行。您可以通过将 lazy_adam
设置为 False
来更改此行为。
embedding = tf.tpu.experimental.embedding.TPUEmbedding(
...
optimizer=tf.tpu.experimental.embedding.Adam(0.1))
这也可以在tf.tpu.experimental.embedding.TableConfig
中用作优化器参数来设置特定于表的优化器。这将覆盖上面定义的全局嵌入优化器的优化器和参数:
table_one = tf.tpu.experimental.embedding.TableConfig(
vocabulary_size=...,
dim=...,
optimizer=tf.tpu.experimental.embedding.Adam(0.2))
table_two = tf.tpu.experimental.embedding.TableConfig(
vocabulary_size=...,
dim=...)
feature_config = (
tf.tpu.experimental.embedding.FeatureConfig(
table=table_one),
tf.tpu.experimental.embedding.FeatureConfig(
table=table_two))
embedding = tf.tpu.experimental.embedding.TPUEmbedding(
feature_config=feature_config,
batch_size=...
optimizer=tf.tpu.experimental.embedding.Adam(0.1))
在上面的示例中,将在学习率为 0.2 的表中查找第一个特征,而将在学习率为 0.1 的表中查找第二个特征。
有关这些参数及其对优化器算法的影响的完整说明,请参阅“tensorflow/core/protobuf/tpu/optimization_parameters.proto”。
相关用法
- Python tf.tpu.experimental.embedding.Adagrad用法及代码示例
- Python tf.tpu.experimental.embedding.FeatureConfig用法及代码示例
- Python tf.tpu.experimental.embedding.FTRL用法及代码示例
- Python tf.tpu.experimental.embedding.TPUEmbedding.apply_gradients用法及代码示例
- Python tf.tpu.experimental.embedding.TPUEmbedding用法及代码示例
- Python tf.tpu.experimental.embedding.TPUEmbedding.dequeue用法及代码示例
- Python tf.tpu.experimental.embedding.SGD用法及代码示例
- Python tf.tpu.experimental.embedding.TableConfig用法及代码示例
- Python tf.tpu.experimental.embedding.serving_embedding_lookup用法及代码示例
- Python tf.tpu.experimental.embedding.TPUEmbedding.enqueue用法及代码示例
- Python tf.tpu.experimental.DeviceAssignment用法及代码示例
- Python tf.types.experimental.GenericFunction.get_concrete_function用法及代码示例
- Python tf.train.Coordinator.stop_on_exception用法及代码示例
- Python tf.train.ExponentialMovingAverage用法及代码示例
- Python tf.train.Checkpoint.restore用法及代码示例
- Python tf.test.is_built_with_rocm用法及代码示例
- Python tf.train.Checkpoint.read用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.tpu.experimental.embedding.Adam。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。