您的位置:首页 > 其它

一个不应该犯的错octave

2016-01-13 15:43 148 查看
今天在完成Andrew NG的机器学习神经网络作业,在实现花费函数的时候,没有使用循环,直接向量计算.前面都想的挺好的,很快就想到了如何使用向量来计算,可是在扩展y的时候,犯了一个超级傻的错误.

y是m*1的向量,y的值为1~10的某个数,代表着对应的类标签,总共10个标签.现在要把y扩展为k*m矩阵,其中,第i列代表着原来y第i行扩展后的值,

比如 y1 = 2,则y1扩展后应该为 y1 = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0].

结果我错误的写为如下:

Y = zeros(1, m) + linspace(1, num_labels, num_labels)';

Y == y'; #这里出错,未将结果赋给Y

应该是:

Y = zeros(1, m) + linspace(1, num_labels, num_labels)';

Y = Y == y'; #这样才是对的


  

导致,结果不对,检查老半天,浪费了一个下午时间,都不知道哪里错了,在我一步一步打印输出,检查才发现到,那条语句出错了.

太傻了我...不能忍啊........

:-(
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: