Biraz karmaşık ve kanonik olmayan NN mimarisini hata ayıklamaya çalışıyorum. İleri geçişi hesaplamak gayet iyi ve bana beklenen sonuçları veriyor, ama Adem'i veya herhangi bir standart optimize ediciyi kullanarak optimize etmeye çalıştığımda, çok küçük bir öğrenme hızına sahip bir yinelemeden sonra bile her yerde nans elde ediyorum. Onları yerelleştirmeye çalışıyorum ve bir nan'in ilk oluşumunu yakalamanın ve hangi operasyonda ortaya çıktığını tespit etmenin bir yolu olup olmadığını merak ediyordum. tf.add_check_numerics_ops()
'u denedim, ancak hiçbir şey yapmıyor gibi görünüyor ya da belki yanlış kullanıyorum.Geriye doğru geçişteki nankör sayısı
11
A
cevap
18
Özellikle büyük bir ağınız varsa, NaN'leri hata ayıklamak zor olabilir. tf.add_check_numerics_ops()
, grafikteki her bir kayan nokta tensörünün herhangi bir NaN değeri içermediğini, ancak bu denetimleri varsayılan olarak çalıştırılmadığını iddia eden grafiğe ekler. şöyle Bunun yerine, periyodik çalıştırın veya her adımda olabilir bir op verir: Bu
print_ops = []
for op in ops:
print_ops.append(tf.Print(op, [op],
message='%s :' % op.name, summarize=10))
print_op = tf.group(*print_ops)
sess.run([train_op, print_op])
gibi
train_op = ...
check_op = tf.add_check_numerics_ops()
sess = tf.Session()
sess.run([train_op, check_op]) # Runs training and checks for NaNs
2
Belki ops baskı değerlerini şüphelenmeye Baskı op ekleyebilir şey Tüm oplara eklemek için add_check_numerics_ops
satırlarında bir döngü yapabilirsiniz.
İlgili konular
- 1. ZSH Bindkey Geriye Doğru Arama
- 2. Tabloyu son kayıttan geriye doğru veya geriye doğru sorgulamak için etkin yöntem rayları
- 3. C++ 0x Tuples Elements Öğeleri Geriye doğru
- 4. libvlc_media_player_set_position geriye doğru arama yaparken başarısız oluyor
- 5. Lambda işlevlerini geriye doğru nasıl gösterebilirim?
- 6. CSS geçişi nasıl yapılır "geriye doğru" çalışır?
- 7. Bir STL listesinden geriye doğru nasıl yineliyorsunuz?
- 8. Matplotlib grafikleri ile geriye doğru ve ileriye doğru kaydır
- 9. sohbetde sayısı doğru çalışmıyor QuickBlox
- 10. Jquery'yi kullanarak bir zincirden geriye doğru nasıl geçersiniz?
- 11. Python'un liste anlama döngüleri sırası neden geriye doğru?
- 12. CAKeyFrameAnimation'da bir yolu geriye doğru oynatmak mümkün mü?
- 13. 'Luo' ifadeleri için Lua bayt kodu geriye doğru atlayabilir mi?
- 14. Powershell, standart komut istemiyle geriye doğru uyumlu mu?
- 15. Dönüştürülmüş öğelerle ilgili perspektif neden geriye doğru görünüyor?
- 16. ctrl-x o geriye doğru (diğer pencerenin tersi)?
- 17. Range nesnesini "geriye doğru seçim" olarak ayarlamak mümkün mü?
- 18. Güneydeki ilk geçişten önce geriye doğru gidebilir misiniz?
- 19. Neden İşlev Zincirleme yerine Geriye Doğru Boru Kullanıcısı kullanılır?
- 20. Excel Range nesnesini geriye doğru yürümenin en hızlı yolu nedir?
- 21. Geriye doğru gitme durumunda exoplayer'ın yeniden yüklenmesini nasıl önleyebilirim?
- 22. C Skaler tipini skaler olmayan ve geriye doğru nasıl dökerim?
- 23. İleriye doğru hareket etmekten çok daha yavaş bir gif ile geriye doğru hareket etmek
- 24. Geriye dönük görünümler lookbehind
- 25. Geriye kalan argümanları argparse
- 26. NuGet Sürümleri Geriye Dönüyor
- 27. GroupBy ile TimeGrouper 'geriye'
- 28. Geriye sayımı ve sonucu
- 29. Makalelerdeki yorumların sayısı sayısı
- 30. sayısı
Sorun şu ki, tren_op'u çalıştırdığımda, ağlar ağ boyunca yayılıyor ve bu yüzden sebebini bulmak işe yaramıyor. Yapmak istediğim şey, ileri ve geri geçişleri çalıştırmaktır ve bir nan üretilir olmaz, suç işleyen tarafından bir istisna atılır. –
"train_op" ve "check_op" işlevlerini birlikte çalıştırırsanız, bir NaN içeren ilk düğümü bildiren bir hata alırsınız - bu yükseltilmiş "tf.InvalidArgumentError" ı yakalayabilir ve op'unu '' dan ayıklayabilirsiniz. op 'özelliği. İşlemin bir tanıtıcısıyla, hangi tensörün NaN değerlerine sahip olduğunu görmek için 'op.inputs [0]' özelliğine erişebilirsiniz. – mrry
Tamam, teşekkürler! –