问题标签 [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.

0 投票
2 回答
909 浏览

apl - APL 中的 +.x 为何同时适用于矩阵和向量?

我确实理解,它基本上是通过加法减少乘法,但是有什么魔力,使它既适用于向量又适用于矩阵。

对于向量,我们可以做类似+/ A x B的事情,但结果相同。但这不适用于矩阵,x就像制作一个2 2矩阵一样,减少它会产生2向量。

并且按本书进行矩阵乘法,减少每个相应的 pow 和列乘法,在2 2对向量执行相同操作时会产生矩阵。

那么它是如何工作的呢?

0 投票
2 回答
1526 浏览

matlab - 线性核是正定的吗?

在很多文章中,线性核(两个矩阵的内积)被列为正定但是当我用玩具数据集尝试它时,正定测试返回负结果。我检查了 MATLAB SVM 函数的线性内核。

线性核函数是一行命令,

然而,在主 svm_train 函数的这一步之后,它使用 K 执行另一个操作,

哪里kx是 K 并且diag(1./boxconstraint)只是一个大小的对角矩阵,kx结果kx通过了正定性检验。作为对这一步的解释,它说 '% ensure function is symmetric.'我也检查过libsvm,但我在那里找不到这个额外的操作。

然而,内积已经是对称的,这一步通常用于将不定矩阵转换为正定矩阵。我有点困惑为什么内积核没有通过正定性检验?

0 投票
3 回答
3994 浏览

java - Java Vector 内积

我有一个 m 维向量的数组列表(存储为简单数组)v1, v2 ... vn.

我必须重复计算从这些向量中选择的两个向量之间的内积。

一种方法是在其所有组件上进行简单的 for 循环。

这几乎是我打算对我的数据执行的唯一线性代数运算。

  1. 导入 JAMA 或 la4j 之类的 linalg 库,将所有内容存储为矩阵并计算内积会更有效吗?(这些甚至不是大矩阵乘法,只是一维向量之间的内积)

  2. la4j(etc) 如何实现点积?它不会也遍历每个索引并乘以每对组件吗?

0 投票
1 回答
959 浏览

c++ - std::inner_product 比手动快 4 倍,但没有使用 SIMD?

std::inner_product()与手动点积计算相比,我很感兴趣,所以我做了一个测试。

std::inner_product()比手动实现快 4 倍。我觉得这很奇怪,因为确实没有那么多方法可以计算它,当然?!我也看不到在计算时正在使用任何 SSE/AVX 寄存器。

设置:VS2013/MSVC(12?),Haswell i7 4770 CPU,64位编译,发布模式。

这是 C++ 测试代码:

0 投票
2 回答
111 浏览

python - 在第一个(而不是最后一个)轴上计算 numpy.inner()

我正在尝试制作一个类似的函数,但它在两个数组的一个轴而不是最后一个轴上numpy.inner求和。目前我正在使用:tensordotrollaxis

但我想知道:有没有更好的方法?也许不需要我滚动轴?

我觉得einsum应该使这成为可能,但我不确定如何在这里使用它。
似乎需要我硬编码的维度a以及b当我指定下标字符串时,我在这里无法真正做到这一点,因为对输入维度没有特殊要求。

(注意:我知道在第一个轴而不是最后一个轴上求和会影响性能,但我在这里忽略了它们。)

0 投票
1 回答
1218 浏览

python - 在numpy中计算L2内积?

我正在考虑 L2 内积。

我对使用 numpy/scipy 执行这些计算特别感兴趣。我想出的最好的方法是执行基于数组的积分,例如numpy.trapz.

需要明确的是,我对使用 Mathematica、Sage 或 Sympy 不感兴趣。我对 numpy/scipy 特别感兴趣,其中我正在探索 numpy “数组空间”作为希尔伯特空间的有限子空间。在这些参数中,其他人是否实现了 L2 内积,可能使用numpy.inneror numpy.linalg.norm

0 投票
1 回答
331 浏览

c++ - C ++嵌套for循环-内积-矩阵乘法

我有一个 4 行 3 列的矩阵 A 和一个 8 行 4 列的矩阵 B。B 的第一列中的系数应该表示我想用 B 的行作为内积的 A 的那些行。

0 投票
4 回答
36480 浏览

python - NumPy 计算向量范数 2 的平方

我有向量a
我想计算np.inner(a, a)
但我想知道是否有更漂亮的方法来计算它。

[这种方式的缺点是,如果我想计算它a-b或更复杂的表达式,我必须多写一行。c = a - bnp.inner(c, c)不是somewhat(a - b)]

0 投票
1 回答
261 浏览

python - numpy:广播成多个内积和逆

我有数组e,(shape qby lf(shape nby l)和w(shape nby l),我想创建一个数组MwhereM[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, :])。这看起来也是内积式的,但是进行大量单独的逆运算很耗时,那么有没有一种方法可以计算切片的逆运算,而不是循环?

我的数组中的一些测试值如下:

0 投票
1 回答
229 浏览

deep-learning - 如何在内部产品层中平方权重?

我开始Caffe并运行良好。我需要平方权重inner product layer。该Forward_cpu函数表示weight,但我不知道如何平方它。

forward_cpu函数定义如下:

请注意,我使用caffe_sqr,但caffe_sqr<Dtype>(weight.count(), weights, new_weights);返回错误。当我制作新图层时,警告是:

在训练我的模型后,错误是: