Menghentikan perhitungan gradien.
Saat dijalankan dalam grafik, operasi ini menampilkan tensor masukannya apa adanya.
Saat membangun operasi untuk menghitung gradien, operasi ini mencegah kontribusi masukannya diperhitungkan. Biasanya, generator gradien menambahkan operasi ke grafik untuk menghitung turunan dari 'kerugian' tertentu dengan mencari masukan yang berkontribusi pada penghitungannya secara rekursif. Jika Anda memasukkan operasi ini ke dalam grafik, inputnya akan disembunyikan dari generator gradien. Mereka tidak diperhitungkan untuk menghitung gradien.
Ini berguna kapan pun Anda ingin menghitung nilai dengan TensorFlow tetapi harus berpura-pura bahwa nilainya adalah sebuah konstanta. Misalnya, fungsi softmax untuk vektor x dapat ditulis sebagai
def softmax(x):
numerator = tf.exp(x)
denominator = tf.reduce_sum(numerator)
return numerator / denominator
def stable_softmax(x):
z = x - tf.reduce_max(x)
numerator = tf.exp(z)
denominator = tf.reduce_sum(numerator)
return numerator / denominator
tf.reduce_max(x)
(jika nilai max tidak unik maka gradien dapat mengalir ke input yang salah) dan memperlakukannya sebagai konstanta. Oleh karena itu, kita harus menuliskannya sebagaidef stable_softmax(x):
z = x - tf.stop_gradient(tf.reduce_max(x))
numerator = tf.exp(z)
denominator = tf.reduce_sum(numerator)
return numerator / denominator
- Algoritma EM dimana M-step tidak boleh melibatkan backpropagation melalui output dari E-step .
- Pelatihan divergensi kontrastif pada mesin Boltzmann dimana, ketika membedakan fungsi energi, pelatihan tidak boleh melakukan propagasi mundur melalui grafik yang menghasilkan sampel dari model.
- Pelatihan permusuhan, di mana tidak ada backprop yang terjadi melalui proses pembuatan contoh permusuhan.
Metode Publik
Keluaran <T> | sebagai Keluaran () Mengembalikan pegangan simbolik tensor. |
statis <T> StopGradien <T> | |
Keluaran <T> | keluaran () |
Metode Warisan
Metode Publik
Keluaran publik <T> sebagai Keluaran ()
Mengembalikan pegangan simbolik tensor.
Masukan ke operasi TensorFlow adalah keluaran dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.
public static StopGradient <T> buat ( Lingkup lingkup, masukan Operan <T>)
Metode pabrik untuk membuat kelas yang membungkus operasi StopGradient baru.
Parameter
cakupan | ruang lingkup saat ini |
---|
Kembali
- contoh baru StopGradient