我尝试在Numpy中使用两个不同维度的矩阵的点积。w是(1,5),X是(3,5)。我不确定我可以使用哪个命令来更改维度,因为我是python的新手。谢谢。
当我尝试运行我的函数时,它给我一个错误消息:
ValueError: shapes (1,5) and (3,5) not aligned: 5 (dim 1) != 3 (dim 0)
from numpy.core.memmap import ndarray
def L(w, X, y):
"""
Arguments:
w -- vector of size n representing weights of input features n
X -- matrix of size m x n represnting input data, m data sample with n features each
y -- vector of size m (true labels)
Returns:
loss -- the value of the loss function defined above
"""
### START CODE HERE ### (2-4 lines of code)
#w needs to match X matrix
# w = (1, 5)
# x = (3, 5)
yhat = np.dot(w, X)
L1 = y - yhat
loss = np.dot(L1, L1)
### END CODE HERE ###
return loss
下面是方向的图片:image of directions
2条答案
按热度按时间dy2hfwbg1#
两个向量的点积是关于位置的元素的乘积之和。第一个向量的第一个元素乘以第二个向量的第一个元素,依此类推。这些乘积之和就是点积,可以使用np.dot()函数完成。
因为我们把相同位置的元素相乘,所以两个向量必须有相同的长度才能得到点积。
它将生成以下输出-
注意点积的计算公式为−
zfciruhq2#
tensordot可实现任意轴选择的Tensor积,因此具有充分的灵活性。
一个很好的应用是估计协方差矩阵,而不干扰转置: