我正在学习coursera的Andrew NG课程,我想在python上实现同样的逻辑。我在计算成本和θ
scipy.optimize.fmin_ncg
这是一个密码
^{pr2}$当我尝试运行这个程序时,我得到如下错误/异常
Traceback (most recent call last):
File "/file/path/without_regression.py", line 78, in <module>
main()
File "/file/path/without_regression.py", line 66, in main
mr = fmin_ncg(compute_cost, initial_theta, compute_gradient, args=(X, y), full_output=True)
File "/usr/local/anaconda3/envs/ml/lib/python3.6/site-packages/scipy/optimize/optimize.py", line 1400, in fmin_ncg
callback=callback, **opts)
File "/usr/local/anaconda3/envs/ml/lib/python3.6/site-packages/scipy/optimize/optimize.py", line 1497, in _minimize_newtoncg
dri0 = numpy.dot(ri, ri)
ValueError: shapes (3,1) and (3,1) not aligned: 1 (dim 1) != 3 (dim 0)
我不明白这个错误。可能是因为我是初学者这对我来说并不冗长。在
如何使用scipy.optimize.fmin_ncg
或任何其他最小化技术,如scipy.optimize.minimize(...)
来计算成本和θ?
如评论所述:
在没有文档引用的情况下,应该始终使用一维数组。在
Relevant SO-question
这适用于您的
x0
(如果不使用python列表)和渐变。在一种快速的破解(渐变中的渐变效果),比如:
^{pr2}$使代码运行:
额外:在调试过程中,我还检查了梯度本身与数值微分的计算(推荐!),使用x0时看起来不错:
相关问题 更多 >
编程相关推荐