问题描述:
在使用工具库scipy.optimize更新θ时,出现了 cost函数 数据维度错误:ValueError: shapes (1,3) and (1,100) not aligned: 3 (dim 1) != 1 (dim 0)。但在前面测试时 cost函数 是没有问题的。
经万能的百度,找到了解决方法:上链接。
但这篇文章或类似的文章并没有说明为什么参数的位置改变会导致出现数据维度的错误。
细挖了下使用的这个函数:fmin_tnc(func, x0, fprime=None, args=(), approx_grad=0,...)
发现了个小细节,那就是参数 func : callable func(x, *args)
其中x是具有(n,)形状的一维数组,而args是完全指定函数所需的固定参数的元组,args为函数对应的args参数
所以对应 cost函数,gradient函数 的参数 ,应该是 ( theta, X,Y)
扫描二维码关注公众号,回复:
14848538 查看本文章
以上为本人的猜想,若有误,欢迎交流