Bu Paper'da tanıtılan ve bu recipe numaralı belgede açıklanan "Güdümlü geri yayılım" tekniğini TensorFlow uygulamasında uygulamak istiyorum. Hesapsal olarak, yani girdi wrt değerinin gradyanını hesapladığımda hesaplama anlamındadır. NN'nin çıktısı, 'a, her RELU birimi'da hesaplanan degradeleri değiştireceğim. Somut olarak, bu tekniklerin çalışması için, bu birimler üzerindeki geri yayılan sinyalin sıfır olarak eşleştirilmesi gerekir. Başka bir deyişle, negatif olan RELU'ların kısmi türevi göz ardı edilmelidir.Güdümlü Geri yayılımı TensorFlow
Bu gradyan hesaplamalarını yalnızca test örneklerine uygulamakla ilgilendim, yani, modelin parametrelerini güncellemek istemiyorum - nasıl yapmalıyım?
Kullanım tf.py_funcg aracılığıyla o degrade operasyon yeniden tanımlamak için daha sonra uygun olan bir relu, benim basit numpy versiyonunu sarmak için:
I (başarısız) şimdiye kadar iki şey denedik .gradient_override_map içerik yöneticisi.BackProp'un ileri/geri değerlerini toplayın ve Relus'tan kaynaklanan eşikleri uygulayın.
Her iki yaklaşımda da başarısız oldum, çünkü şu anda sahip olmadığım TF'nin dahili bilgisine ihtiyaç duyuyorlar.
Başka herhangi bir yol önerebilir veya kodu çizebilir mi?
Çok teşekkürler.
Merhaba Kaveman, hızlı cevap için çok teşekkürler. Son tf.gradients çağrısında, ilk argüman olarak Dafter_relu kasıtlı olarak geçiyorsunuz? – Peter
Ayrıca, hala kafam karıştı. RELU öğelerine sahip olan herhangi bir NN için çalışacak şekilde birçok katmana sahip bir ağ üzerinde bunu nasıl genelleştirebilirsiniz. Bu bölüm için, her RELU elemanının tüm giriş/çıkışını ve daha önce açıklanan mantığınızı 'zincirlemeniz' izlemeniz gerekmiyor mu? Teşekkürler. – Peter
@Peter, üzgünüm, bu bir yazım hatasıydı. Tf.gradients’a yapılan ikinci çağrı 'after_relu' w.r.t. 'Params'. – keveman