问题标签 [inner-product]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apl - APL 中的 +.x 为何同时适用于矩阵和向量?
我确实理解,它基本上是通过加法减少乘法,但是有什么魔力,使它既适用于向量又适用于矩阵。
对于向量,我们可以做类似+/ A x B
的事情,但结果相同。但这不适用于矩阵,x
就像制作一个2 2
矩阵一样,减少它会产生2
向量。
并且按本书进行矩阵乘法,减少每个相应的 pow 和列乘法,在2 2
对向量执行相同操作时会产生矩阵。
那么它是如何工作的呢?
matlab - 线性核是正定的吗?
在很多文章中,线性核(两个矩阵的内积)被列为正定但是当我用玩具数据集尝试它时,正定测试返回负结果。我检查了 MATLAB SVM 函数的线性内核。
线性核函数是一行命令,
然而,在主 svm_train 函数的这一步之后,它使用 K 执行另一个操作,
哪里kx
是 K 并且diag(1./boxconstraint)
只是一个大小的对角矩阵,kx
结果kx
通过了正定性检验。作为对这一步的解释,它说
'% ensure function is symmetric.'
我也检查过libsvm
,但我在那里找不到这个额外的操作。
然而,内积已经是对称的,这一步通常用于将不定矩阵转换为正定矩阵。我有点困惑为什么内积核没有通过正定性检验?
java - Java Vector 内积
我有一个 m 维向量的数组列表(存储为简单数组)v1, v2 ... vn.
我必须重复计算从这些向量中选择的两个向量之间的内积。
一种方法是在其所有组件上进行简单的 for 循环。
这几乎是我打算对我的数据执行的唯一线性代数运算。
导入 JAMA 或 la4j 之类的 linalg 库,将所有内容存储为矩阵并计算内积会更有效吗?(这些甚至不是大矩阵乘法,只是一维向量之间的内积)
la4j(etc) 如何实现点积?它不会也遍历每个索引并乘以每对组件吗?
c++ - std::inner_product 比手动快 4 倍,但没有使用 SIMD?
std::inner_product()
与手动点积计算相比,我很感兴趣,所以我做了一个测试。
std::inner_product()
比手动实现快 4 倍。我觉得这很奇怪,因为确实没有那么多方法可以计算它,当然?!我也看不到在计算时正在使用任何 SSE/AVX 寄存器。
设置:VS2013/MSVC(12?),Haswell i7 4770 CPU,64位编译,发布模式。
这是 C++ 测试代码:
python - 在第一个(而不是最后一个)轴上计算 numpy.inner()
我正在尝试制作一个类似的函数,但它在两个数组的第一个轴而不是最后一个轴上numpy.inner
求和。目前我正在使用:tensordot
rollaxis
但我想知道:有没有更好的方法?也许不需要我滚动轴?
我觉得einsum
应该使这成为可能,但我不确定如何在这里使用它。
似乎需要我硬编码的维度a
以及b
当我指定下标字符串时,我在这里无法真正做到这一点,因为对输入维度没有特殊要求。
(注意:我知道在第一个轴而不是最后一个轴上求和会影响性能,但我在这里忽略了它们。)
python - 在numpy中计算L2内积?
我正在考虑 L2 内积。
我对使用 numpy/scipy 执行这些计算特别感兴趣。我想出的最好的方法是执行基于数组的积分,例如numpy.trapz
.
需要明确的是,我对使用 Mathematica、Sage 或 Sympy 不感兴趣。我对 numpy/scipy 特别感兴趣,其中我正在探索 numpy “数组空间”作为希尔伯特空间的有限子空间。在这些参数中,其他人是否实现了 L2 内积,可能使用numpy.inner
or numpy.linalg.norm
?
c++ - C ++嵌套for循环-内积-矩阵乘法
我有一个 4 行 3 列的矩阵 A 和一个 8 行 4 列的矩阵 B。B 的第一列中的系数应该表示我想用 B 的行作为内积的 A 的那些行。
python - NumPy 计算向量范数 2 的平方
我有向量a
。
我想计算np.inner(a, a)
但我想知道是否有更漂亮的方法来计算它。
[这种方式的缺点是,如果我想计算它a-b
或更复杂的表达式,我必须多写一行。c = a - b
而np.inner(c, c)
不是somewhat(a - b)
]
python - numpy:广播成多个内积和逆
我有数组e
,(shape q
by l
)f
(shape n
by l
)和w
(shape n
by l
),我想创建一个数组M
whereM[s,i,j] = np.sum(w[s, :] * e[i, :] * e[j, :])
和一个数组F
, where F[s,j] = np.sum(w[s, :] * f[s, :] * e[j, :])
。
两者都很容易做到,例如,循环遍历 的元素M
,但我想提高效率(我的真实数据有类似 1M 长度为 5k 的条目)。对于F
,我可以使用F = np.inner(w * f, e)
(我验证它会产生与循环相同的答案)。M
更困难,所以第一步是用列表理解循环通过维度零,说M = np.stack([np.inner(r[:] * e, e) for r in w])
(我已经验证这也与循环相同)。np.inner()
不接受任何轴参数,所以我不清楚如何告诉数组只广播w
.
最后,我需要使用M
和的元素F
来创建一个矩阵A
,其中A[s,i] = np.sum(np.linalg.inv(M[s, :, :])[i, :] * F[i, :])
。这看起来也是内积式的,但是进行大量单独的逆运算很耗时,那么有没有一种方法可以计算切片的逆运算,而不是循环?
我的数组中的一些测试值如下:
deep-learning - 如何在内部产品层中平方权重?
我开始Caffe
并运行良好。我需要平方权重inner product layer
。该Forward_cpu
函数表示weight
,但我不知道如何平方它。
forward_cpu
函数定义如下:
请注意,我使用caffe_sqr
,但caffe_sqr<Dtype>(weight.count(), weights, new_weights);
返回错误。当我制作新图层时,警告是:
在训练我的模型后,错误是: