Python / Scipy“标量变量的无效索引”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python / Scipy“标量变量的无效索引”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1324字,纯文字阅读大概需要2分钟。
内容图文
![Python / Scipy“标量变量的无效索引”](/upload/InfoBanner/zyjiaocheng/752/2def3422aa2d440698f7409d2d2684f0.jpg)
我正在使用Scipy优化模块,特别是fmin_tnc和fmin_l_bfgs_b.但是,当使用任何一个时,我收到消息“IndexError:标量变量的无效索引”.
这个错误的原因是什么?
这个错误信息的含义是什么?
我的练习代码:
def f01(para):
para1, para2 = para
return 1+ (para1 -1)**2 + (para2 -2)**2
para0 = np.array([10, 10])
mybounds = [(-40,30),(-20,15)]
opt.fmin_l_bfgs_b(f01, para0, bounds = mybounds )
哪个回报:
Traceback (most recent call last):
File "C:\Python27\mystuff\practice_optimize01.py", line 78, in <module>
opt.fmin_l_bfgs_b(f01, para0, bounds = mybounds )
File "C:\Python27\lib\site-packages\scipy\optimize\lbfgsb.py", line 174, in fm
in_l_bfgs_b
**opts)
File "C:\Python27\lib\site-packages\scipy\optimize\lbfgsb.py", line 294, in _m
inimize_lbfgsb
f, g = func_and_grad(x)
File "C:\Python27\lib\site-packages\scipy\optimize\lbfgsb.py", line 249, in fu
nc_and_grad
f = fun(x, *args)
File "C:\Python27\lib\site-packages\scipy\optimize\optimize.py", line 55, in _
_call__
self.jac = fg[1]
IndexError: invalid index to scalar variable.
Python 2.7.3,32位.
Numpy 1.6.2.
Scipy 0.11.0b1.
Windows XP和Vista.
解决方法:
fmin_l_bfgs_b期望您的函数返回函数值和渐变.您只返回函数值.
如果只返回函数值而不提供渐变,则需要设置approx_grad = True,以便fmin_l_bfgs_b使用数值近似值.
请参阅docstring中的选项说明.
从我对文档的阅读中,fmin_tnc具有相同的模式,并且在您的情况下也存在同样的问题.
内容总结
以上是互联网集市为您收集整理的Python / Scipy“标量变量的无效索引”全部内容,希望文章能够帮你解决Python / Scipy“标量变量的无效索引”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。