我想要实现以下数学公式来计算numpy中的成本函数J:
[1] 𝐴=𝜎(𝑤.𝑇𝑋+𝑏)=(𝑎(1),𝑎(2),...,𝑎(𝑚−1),𝑎(𝑚))
[2] 𝐽=−1/𝑚 ∑𝑚𝑖=1(𝑦(𝑖)log(𝑎(𝑖))+(1−𝑦(𝑖))log(1−𝑎(𝑖)))
因此:
- w、B、X、Y
我已经找到了一个解决方案,但我不明白为什么它的工作方式:
A = sigmoid(np.dot(w.T,X)+b)
cost = -(1/m) * np.sum((Y*np.log(A))+(1-Y)*np.log(1-A))
**我的问题是:我如何知道何时使用np.dot进行乘法运算,何时使用 * 运算符?例如,为什么 *w.TX(来自公式1)由np.dot(w.T,X)而不是w.TX实现?
在np.dotnumpy中实现函数时,我如何知道如何使用www.example.com()以及何时使用 * 运算符?
1条答案
按热度按时间zwghvu4y1#
是的,这很混乱,但是np.dot当你想执行矩阵乘法时,你应该使用www.example.com()函数,因为它遵循矩阵乘法的标准规则,当你想执行元素乘法时,你应该使用 * 操作符,因为它将两个数组中对应的元素相乘,而不管它们的形状如何。
注意:使用 * 运算符比使用np.dot()更快,特别是当您有大型矩阵时。