采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
init_theta 应该是一个向量,你的创建方法让 init_theta 是一个 2 * 1 的矩阵。
这一小节的代码传送门:https://git.imooc.com/coding-169/coding-169/src/master/06-Gradient-Descent/06-Stochastic-Gradient-Descent/06-Stochastic-Gradient-Descent.ipynb
继续加油!:)
2*1的矩阵就是一个列向量吧,因为习惯了矩阵乘法的时候写成列向量了 老师这样是不是一个不好的习惯,因为好像挺多地方都要改
不是。向量不是矩阵。2 * 1 的矩阵不是列向量。我们在纸上写的时候,这二者“看似”没有区别,但是在计算机中,至少当下的 numpy 的数据结构的表示中,这二者有本质区别。矩阵的维度是 2,哪怕是 1 * n 的矩阵,或者 n * 1 的矩阵,他的维度也是 2。你可以理解成二维数组和一维数组是不一样的,哪怕二维数组中的一个维度为 1。以 Java 为例,二维数组是 int[][],一维数组是 int[]。 但是向量的维度是 1,所以向量其实就是向量,没有行向量和列向量的区别。当我们说行向量或者列向量的时候,其实已经把向量当做矩阵看了,强调他是二维的,行向量是第一个维度是 1,列向量是第二个维度是 1。 在机器学习的编程中,分清楚每个变量到底是向量还是矩阵,是非常重要的。这也就是为什么,在这个课程中,我特意强调了,课程中的变量,小写字母都是向量,大写字母才表示矩阵。同时,shape 函数非常重要,在具体运算前,如果不确定,或者出了问题,一定要使用 shape 函数检查一下你的运算对象和你想象的是一样形状的矩阵或者向量。(使用 shape 有些类似在物理学中经常使用量纲来检查计算的正确性。) 继续加油!:)
老师我刚刚自己去测试了一下矩阵乘法在np.array中的规则 慢慢的理解了 可能是我对array的运算规律不习惯
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.7k 19
3.7k 17
3.1k 15
1.7k 15
1.6k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号