以下为八度音程的代码片段的矢量化代码是什么?

时间:2018-03-05 14:41:37

标签: machine-learning vectorization octave

任何人都可以帮我将以下代码转换为矢量化形式吗?

z=X*theta;
g=sigmoid(z);
for i=1:m
  J=J+((-y(i)*log(g(i)))-((1-y(i))*log(1-g(i))));
end

我试过以下

z=X*theta;
g=sigmoid(z);
J=J+((-y).*log(g)-((1-y).*log(1-g)));

但这会打印一个特定值m次。而且答案也是错误的。

J的答案是0.693我正确使用for循环但是对于矢量化实现我得到0.00693。

出了什么问题? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您正在使用J,并将所有-y(i)*log(g(i))-(1-y(i))*log(1-g(i))添加到其中。

因此,您需要J并添加(sum)所有这些内容。

J=J+sum(  (-y).*log(g)-(1-y).*log(1-g)  );