我目前正在学习使用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是有效的,所以我有点困惑。
答案 0 :(得分:2)
Julia中的dot
函数仅适用于严格意义上的点积 - 矢量空间上的内积,即两个向量之间的内积。看起来你只想将矢量与矩阵相乘。在这种情况下,您可以使用
w = zeros(size(train_x, 1)) # no need for the extra dimension
result = w' * train_x
*
将执行矩阵向量乘法。在Julia中,与Numpy不同,但在Matlab中,.*
用于元素乘法。