应用损失缩放的已弃用优化器。
继承自:LossScaleOptimizer
,Optimizer
用法
tf.keras.mixed_precision.experimental.LossScaleOptimizer(
optimizer, loss_scale
)
参数
-
optimizer
要包装的优化器实例。 -
loss_scale
损失比例以缩放损失和梯度。这可以是使用固定损失比例的 int/float、使用动态损失比例的字符串 "dynamic" 或 LossScale 的实例。字符串 "dynamic" 等效于传递DynamicLossScale()
,传递一个 int/float 等效于传递一个具有给定损失比例的 FixedLossScale。如果传递了 DynamicLossScale,则 DynamicLossScale.multiplier 必须为 2(默认值)。
抛出
-
ValueError
在任何无效论点的情况下。
属性
-
dynamic
指示是否使用动态损失缩放的布尔值。 -
dynamic_counter
自上次增加或减少损失规模以来的步数。如果
LossScaleOptimizer.dynamic
为 False,则为无。计数器每一步递增。一旦达到
LossScaleOptimizer.dynamic_growth_steps
,损失规模将加倍,计数器将重置为零。如果遇到非有限梯度,损失规模将减半,计数器将重置为零。 -
dynamic_growth_steps
增加损失规模所需的步骤数。如果
LossScaleOptimizer.dynamic
为 False,则为无。每
dynamic_growth_steps
个具有有限梯度的连续步骤,损失规模都会增加。 -
initial_scale
初始损失规模。如果
LossScaleOptimizer.dynamic
为 False,则此数字与LossScaleOptimizer.loss_scale
相同,因为损失比例永远不会改变。 -
inner_optimizer
此 LossScaleOptimizer 包装的优化器。 -
learning_rate
-
loss_scale
当前损失标度为 float32 标量张量。 -
lr
警告:此类已弃用,并将在 TensorFlow 的未来版本中删除。请改用非实验类tf.keras.mixed_precision.LossScaleOptimizer
。
此类与非实验性的keras.mixed_precision.LossScaleOptimizer
相同,只是它的构造函数采用不同的参数。对于此类(实验版本),构造函数采用loss_scale
参数。对于非实验类,构造函数在多个参数中编码损失缩放信息。请注意,与此类不同,非实验类不接受已弃用的 tf.compat.v1.mixed_precision.LossScale
。
如果你当前使用这个类,你应该改用非实验性的tf.keras.mixed_precision.LossScaleOptimizer
。我们展示了几个将实验类的使用转换为等效的非实验类的示例。
# In all of the the examples below, `opt1` and `opt2` are identical
opt1 = tf.keras.mixed_precision.experimental.LossScaleOptimizer(
tf.keras.optimizers.SGD(), loss_scale='dynamic')
opt2 = tf.keras.mixed_precision.LossScaleOptimizer(
tf.keras.optimizers.SGD())
assert opt1.get_config() == opt2.get_config()
opt1 = tf.keras.mixed_precision.experimental.LossScaleOptimizer(
tf.keras.optimizers.SGD(), loss_scale=123)
# dynamic=False indicates to use fixed loss scaling. initial_scale=123
# refers to the initial loss scale, which is the single fixed loss scale
# when dynamic=False.
opt2 = tf.keras.mixed_precision.LossScaleOptimizer(
tf.keras.optimizers.SGD(), dynamic=False, initial_scale=123)
assert opt1.get_config() == opt2.get_config()
loss_scale = tf.compat.v1.mixed_precision.experimental.DynamicLossScale(
initial_loss_scale=2048, increment_period=500)
opt1 = tf.keras.mixed_precision.experimental.LossScaleOptimizer(
tf.keras.optimizers.SGD(), loss_scale=loss_scale)
opt2 = tf.keras.mixed_precision.LossScaleOptimizer(
tf.keras.optimizers.SGD(), initial_scale=2048,
dynamic_growth_steps=500)
assert opt1.get_config() == opt2.get_config()
如果有的话,请确保在 isinstance 检查中也从此类切换到非实验类。如果您不这样做,您的模型可能会遇到 hard-to-debug 问题,因为实验性 LossScaleOptimizer
是非实验性 LossScaleOptimizer
的子类,但反之亦然。即使在使用非实验性 LossScaleOptimizer
之前,将 isinstance 检查切换到非实验性 LossScaleOptimizer
也是安全的。
opt1 = tf.keras.mixed_precision.experimental.LossScaleOptimizer(
tf.keras.optimizers.SGD(), loss_scale='dynamic')
# The experimental class subclasses the non-experimental class
isinstance(opt1, tf.keras.mixed_precision.LossScaleOptimizer)
True
opt2 = tf.keras.mixed_precision.LossScaleOptimizer(
tf.keras.optimizers.SGD())
# The non-experimental class does NOT subclass the experimental class.
isinstance(opt2, tf.keras.mixed_precision.experimental.LossScaleOptimizer)
False
相关用法
- Python tf.keras.mixed_precision.global_policy用法及代码示例
- Python tf.keras.mixed_precision.LossScaleOptimizer用法及代码示例
- Python tf.keras.mixed_precision.set_global_policy用法及代码示例
- Python tf.keras.mixed_precision.Policy用法及代码示例
- Python tf.keras.metrics.Mean.merge_state用法及代码示例
- Python tf.keras.metrics.Hinge用法及代码示例
- Python tf.keras.metrics.SparseCategoricalAccuracy.merge_state用法及代码示例
- Python tf.keras.metrics.RootMeanSquaredError用法及代码示例
- Python tf.keras.metrics.SparseCategoricalCrossentropy.merge_state用法及代码示例
- Python tf.keras.metrics.sparse_categorical_accuracy用法及代码示例
- Python tf.keras.metrics.FalseNegatives用法及代码示例
- Python tf.keras.metrics.TrueNegatives用法及代码示例
- Python tf.keras.metrics.RecallAtPrecision.merge_state用法及代码示例
- Python tf.keras.models.clone_model用法及代码示例
- Python tf.keras.models.save_model用法及代码示例
- Python tf.keras.metrics.SpecificityAtSensitivity用法及代码示例
- Python tf.keras.metrics.Mean用法及代码示例
- Python tf.keras.metrics.poisson用法及代码示例
- Python tf.keras.metrics.LogCoshError用法及代码示例
- Python tf.keras.metrics.MeanSquaredLogarithmicError用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.mixed_precision.experimental.LossScaleOptimizer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。