scipy.optimize.minimize
には、各繰り返しで推定勾配の値を印刷する方法はありますか?私はそれを計算している分析勾配の値と比較したいと思います。SciPy最小化:有限差分Jacobianの値を印刷するにはどうすればよいですか?
2
A
答えて
1
scipy.optimize.minimize
には、数値の近似(scipy.optimize.optimize._approx_fprime_helper
)を行うためにさまざまなメソッドが内部で使用する関数と組み合わせて、各繰り返しの後に呼び出されるcallback
関数を指定できます。一例として、rosen
機能を使用すると:あなたはオプティマイザのソースコードに掘る場合_approx_fprime_helper
が呼び出された場所が表示されます
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)
これは、あなたのような何かを与えるだろう。それは、ここで定義されています:
https://github.com/scipy/scipy/blob/master/scipy/optimize/optimize.py#L601
はあなたが_approx_fprime_helper
に渡すものとminimize
への呼び出しで定義されているeps
値と一致していることを確認します。
関連する問題
- 1. 3つの最大数値のインデックスをArrayListに印刷するにはどうすればよいですか?
- 2. テンプレートコードを最小化するにはどうすればよいですか?
- 3. macosxに印刷する:nstableviewを印刷するにはどうすればよいですか
- 4. ブラウザの最小化、最大化ボタンを無効にするにはどうすればよいですか?
- 5. 小さい整数のメッセージを印刷するにはどうすればよいですか?
- 6. 印刷ダイアログボックスでリストビュー印刷でアイテムを選択するにはどうすればよいですか?
- 7. 最小限の移動で交差点をなくすために線分を移動するにはどうすればよいですか?
- 8. QStringListModelのコンテンツを印刷するにはどうすればよいですか?
- 9. テキストのみを印刷するにはどうすればよいですか?
- 10. IPアドレスを印刷するにはどうすればよいのですか
- 11. タプルのベクトルを印刷するにはどうすればよいですか?
- 12. pidを印刷せずに「$$」を印刷するにはどうすればよいですか?
- 13. AutoHotkeyでアレイを印刷するにはどうすればよいですか?
- 14. アテナソフトウェアでバーコードを印刷するにはどうすればよいですか?
- 15. QtでQWidgetを印刷するにはどうすればよいですか?
- 16. Androidで2小数点以下の倍数を印刷するにはどうすればよいですか?
- 17. アクセサーメソッドをメインプログラムに印刷するにはどうすればよいですか?
- 18. リストをリストに印刷するにはどうすればよいですか?
- 19. 印刷プレビューから印刷設定を提示するにはどうすればよいですか?
- 20. uib-modalを最大化、最小化、ドラッグ可能にするにはどうすればよいですか?
- 21. Dartでコンソールに印刷するにはどうすればよいですか?
- 22. アセンブリでコンソールに印刷するにはどうすればよいですか?
- 23. Pythonの多次元リストで、最小値、最小値、最小値などのインデックスを検索するにはどうすればよいですか?
- 24. フォームを印刷するにはどうすればよいですか?
- 25. Crystal Reportsを印刷するにはどうすればよいですか?
- 26. C++オブジェクトを印刷するにはどうすればよいですか?
- 27. jt400で印刷するにはどうすればよいですか?
- 28. 有効期限の時間差を処理するにはどうすればよいですか?
- 29. 最小/最大可能値(数値制限)でジェネリック変数を初期化するにはどうすればよいですか?
- 30. この方法の最終結果をSwiftで印刷するにはどうすればよいですか?