fmin_bfgs() または fmin_l_bfgs_b() を使用して、多くのパラメーター (7000 を少し超える) を持つ関数を最小化しようとしています。コマンドを入力すると
opt_pars = fmin_l_bfgs_b(obj_f, pars, approx_grad=1)
(ここで、obj_f は最小化しようとしている関数であり、pars は初期パラメーターのベクトルです) 関数は、Python がプログラムを終了する必要があることを通知するまで、永久に実行されます。出力は決してありません。引数 maxfunc = 2 を追加して、それがどこかに到達しているかどうかを確認しようとしましたが、同じことが起こりました(永久に実行され、Pythonがプログラムを終了しました)。
関数の何が問題になっているのかを理解しようとしています。whileループか何かに引っかかっているようです。誰かがこの問題に遭遇しましたか? そうでない場合は、関数の動作を監視する方法について、ここで一般的なデバッグのヘルプを使用することもできます (私は比較的 Python に慣れていないため)。
最後に、誰かが私が試みているタスクに対して別の機能またはパッケージを推奨できるかもしれません。私は、なげなわ正則化されたポアソン回帰を、7000 変数の約 1200 万の観測値を持つスパース データに当てはめようとしています。
PS最小化しようとしている -log 尤度関数を含めなくて申し訳ありませんが、完全に解釈できません。
助けてくれてありがとう!
ザック