scipy.minimizeでL-BFGS-Bのときだけエラーが出る
変数の制約付きで関数を最小化するため, scipy.optimize.minimizeで以下のようにL-BFGS-Bを指定しました
import scipy.optimize as opt
bounds = opt.Bounds(#np.ndarray, #np.ndarray)
result = opt.minimize(loss_f, x0_ft, method='L-BFGS-B', jac=f_grad,
bounds=bounds, tol=10e-6, options={'maxiter': 100, 'disp': True})
このとき, failed to initialize intent(inout) array -- expected elsize=8 but got 4
のエラーが発生し, 実行できません
method
に他のものを指定したときは正しく実行でき, L-BFGS-Bのときだけこのエラーが発生します
解決法など知っている方がいましたら教えていただきたいです
python 3.6.8
scipy:1.3.0
以下出力
RUNNING THE L-BFGS-B CODE
* * *
Machine precision = 2.220D-16
N = 9 M = 10
At X0 0 variables are exactly at the bounds
# ここまで標準出力
# ここからエラー出力
Traceback (most recent call last):
File "main.py", line 147, in <module>
main()
File "main.py", line 120, in main
options={'maxiter': 100, 'disp': True})
File "略/scipy/optimize/_minimize.py", line 600, in minimize
callback=callback, **options)
File "略/scipy/optimize/lbfgsb.py", line 328, in _minimize_lbfgsb
isave, dsave, maxls)
ValueError: failed to initialize intent(inout) array -- expected elsize=8 but got 4