Posted on

tensorflew的自動求導機制

什麼是自動求導機制

在 TensorFlow 中,有一種特殊的張量類型叫做梯度張量,可以用於計算模型的梯度。

TensorFlow 的梯度張量是一種特殊的張量,其中包含了模型中每個變量的梯度信息。梯度張量是 TensorFlow 的自動微分機制的基礎,可以通過 TensorFlow 的自動微分機制來計算模型的梯度。

使用方法介紹

使用 GradientTape 類的方法是:

在計算圖的上下文中創建一個 GradientTape 對象。
使用 GradientTape 對象的 watch 方法監視計算圖中的變量。
執行計算圖,並在計算圖中使用 TensorFlow 的運算符操作張量。
使用 GradientTape 對象的 gradient 方法計算模型的梯度。

使用範例

在機器學習中,我們經常需要計算函數的導數。TensorFlow 提供了強大的自動求導機制來計算導數。以下程式展示了如何使用 tf. GradientTape()方法計算函數,y(x)=x^2在x=3時的導數:

 import tensorflow as tf
x = tf. Variable (initial value=3.)
with tf.GradientTape () as tape:
    #所有計算步驟都會被記錄以用於求導
    y=tf.sguare (x)
y_grad = tape.gradient (y, x)#計算y關於x的導數
print (ly, y_grad]) 

輸出如下:

[array ([9.1, dtype=float32), array ([6.], dtype=float32)]