Her iterasyonda tahmini degradenin değerini yazdırmak için scipy.optimize.minimize
almanın bir yolu var mı? Bunu, bilgisayarımdaki analitik gradyanın değeriyle karşılaştırmak istiyorum.SciPy Küçült: Sonlu farkın değerini nasıl yazdırabilirim?
2
A
cevap
1
çeşitli yöntemler sayısal tahminini (scipy.optimize.optimize._approx_fprime_helper
) yapmak için dahili olarak kullanmak fonksiyonuyla birlikte her tekrardan sonra çağrılan scipy.optimize.minimize
, bir callback
fonksiyonunu sağlayabilmektedir. Örnek olarak rosen
fonksiyonunu kullanma: iyileştirici kaynak koduna kazmak ise _approx_fprime_helper
denir nerede göreceğiniz
exact: [-2.11963396 1.84037029 1.84037037 2.00372223 -0.08167787]
approx: [-2.11963398 1.84037128 1.84037137 2.00372323 -0.08167684]
-----
exact: [-2.09674976 0.65207886 0.77546647 0.73540194 0.02017962]
approx: [-2.0967498 0.65207981 0.77546742 0.73540298 0.02018057]
-----
exact: [-1.89973856 -1.67615541 -0.88726966 -1.04665196 0.08082156]
approx: [-1.8997385 -1.67615442 -0.88726866 -1.04665099 0.08082255]
-----
exact: [ 0.71591999 -7.99959011 -2.81299766 -3.18692904 0.18447144]
approx: [ 0.71592021 -7.99958908 -2.81299664 -3.18692805 0.18447244]
-----
:
import numpy as np
from scipy.optimize import rosen, rosen_der, minimize
from scipy.optimize.optimize import _approx_fprime_helper
def callback(x):
print 'exact: ', rosen_der(x)
print 'approx: ', _approx_fprime_helper(x, rosen, 1E-8)
print '-----'
x0 = np.zeros(5)
res = minimize(rosen, x0, method='L-BFGS-B', callback=callback)
Bu, böyle bir şey verecekti. Burada tanımladı:
https://github.com/scipy/scipy/blob/master/scipy/optimize/optimize.py#L601
Eğer _approx_fprime_helper
geçmek ne minimize
çağrısında tanımlanan eps
değerine uygun olduğundan emin olun.
İlgili konular
- 1. Farkın tersi nasıl yapılır?
- 2. Windows'ta bir git yapılandırma ayarının (core.autocrlf) değerini nasıl yazdırabilirim?
- 3. SciPy
- 4. SciPy
- 5. scipy
- 6. SciPy
- 7. Scipy
- 8. Küçült Küçültme Boyutu
- 9. - farkın anlam veremiyorum save_model, save_formset,
- 10. Scipy Normaltest nasıl kullanılır?
- 11. Golang'da Harita/Küçült görevler nasıl yazılır?
- 12. wchar_t değerlerini konsola nasıl yazdırabilirim?
- 13. Knitr kullanırken konsola nasıl yazdırabilirim?
- 14. Sonlu Durum Makinesi derleyici
- 15. VBA'da sonlu "değişiklik" döngüsü nasıl sonlanır
- 16. scipy kurulum
- 17. Scipy Türev
- 18. SPARQL İki tarih arasındaki farkın hesaplanması
- 19. Swift kullanarak veri türünde bir değişkenin içeriğini nasıl yazdırabilirim?
- 20. "makine uyku" + WaitForSingleObject + sonlu timeout
- 21. Kaynak hattı numarasını Perl'de nasıl yazdırabilirim?
- 22. C programındaki yığın içeriğini nasıl yazdırabilirim?
- 23. Bir sembolün tanımını Şemada değerlendirmeden nasıl yazdırabilirim?
- 24. C++ Bir .txt dosyasını nasıl yazdırabilirim?
- 25. Tam yığın izini GlassFish ile nasıl yazdırabilirim?
- 26. ANSI renklendirme ring.middleware.logger loglarımı nasıl yazdırabilirim?
- 27. Bir şeyi nasıl yazdırabilirim (geçici olarak)?
- 28. İngilizce olmayan karakterleri terminale nasıl yazdırabilirim?
- 29. linux'un başlangıcından itibaren küçült (truncate) dosyası
- 30. ASP.NET MVC'deki Eylem Filtresi Niteliğini Küçült