應用損失縮放的已棄用優化器。
繼承自: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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。