當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.compat.v1.train.RMSPropOptimizer.compute_gradients用法及代碼示例


用法

compute_gradients(
    loss, var_list=None, gate_gradients=GATE_OP, aggregation_method=None,
    colocate_gradients_with_ops=False, grad_loss=None
)

var_list 中的變量計算 loss 的梯度。

遷移到 TF2

警告:這個 API 是為 TensorFlow v1 設計的。繼續閱讀有關如何從該 API 遷移到本機 TensorFlow v2 等效項的詳細信息。見TensorFlow v1 到 TensorFlow v2 遷移指南有關如何遷移其餘代碼的說明。

TF2 中的tf.keras.optimizers.Optimizer 沒有提供compute_gradients 方法,您應該使用tf.GradientTape 來獲取漸變:

@tf.function
def train step(inputs):
  batch_data, labels = inputs
  with tf.GradientTape() as tape:
    predictions = model(batch_data, training=True)
    loss = tf.keras.losses.CategoricalCrossentropy(
        reduction=tf.keras.losses.Reduction.NONE)(labels, predictions)
  gradients = tape.gradient(loss, model.trainable_variables)
  optimizer.apply_gradients(zip(gradients, model.trainable_variables))

Args:損失:包含要最小化的值的張量或不帶參數的可調用函數,它返回要最小化的值。啟用即刻執行後,它必須是可調用的。 var_list:要更新以最小化 losstf.Variable 的可選列表或元組。默認為鍵 GraphKeys.TRAINABLE_VARIABLES 下圖表中收集的變量列表。 gate_gradients:如何對梯度的計算進行門控。可以是 GATE_NONE , GATE_OPGATE_GRAPH 。 aggregation_method:指定用於組合梯度項的方法。有效值在類 AggregationMethod 中定義。 colocate_gradients_with_ops:如果為真,請嘗試將漸變與相應的操作放在一起。 grad_loss:可選。一個 Tensor 保存為 loss 計算的梯度。

返回:(梯度,變量)對的列表。變量始終存在,但梯度可以是 None

引發:類型錯誤:如果 var_list 包含除 Variable 對象之外的任何其他內容。 ValueError:如果某些參數無效。 RuntimeError:如果在啟用即刻執行的情況下調用並且loss 不可調用。

@compatibility(eager) 啟用即刻執行時,gate_gradients , aggregation_methodcolocate_gradients_with_ops 將被忽略。

說明

這是 minimize() 的第一部分。它返回一個(梯度,變量)對列表,其中"gradient" 是"variable" 的梯度。請注意,如果給定變量沒有梯度,"gradient" 可以是 TensorIndexedSlicesNone

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.train.RMSPropOptimizer.compute_gradients。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。