我目前正在和 julia 一起学习 ML,在尝试计算 2 个矩阵的点积时遇到了问题,代码如下:
w, b = zeros(size(train_x, 1), 1), 0
println("Weights size : $(size(w'))")
println("Train X size : $(size(train_x))")
result = dot(w', train_x)
形状是:
* w 形状 : (1, 12288)
* train_x 形状:(12288, 209)
这个调用给了我一个错误:
DimensionMismatch(“点积参数的长度为 12288 和 2568192”)
我错过了什么吗?这个点积使用 numpy 是有效的,所以我有点困惑。
最佳答案
Julia 中的 dot
函数仅适用于严格意义上的点积——向量空间上的内积,即两个向量之间的内积。看起来你只想将向量与矩阵相乘。在这种情况下,您可以使用
w = zeros(size(train_x, 1)) # no need for the extra dimension
result = w' * train_x
*
将进行矩阵向量乘法。在 Julia 中,与 Numpy 不同,但与 Matlab 一样,.*
用于元素乘法。
关于machine-learning - 与尺寸的点积误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897788/