问题标签 [dot-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 投票
1 回答
219 浏览

python - Python,两个向量之间的DotProduct问题

我正在尝试在两个向量之间进行点积,但问题是它们必须是对称的,现在我解释一下我的意思。

如果我有两个这样的向量:

在这种情况下,我将有两个数值向量

但是要进行正确的点积,我希望有两个长度相同的向量,并且具有相同单词的值必须位于相同的位置,用零填充未使用的位置。

例如:

任何想法如何以这种方式转换第一个向量?我必须在python中做谢谢!

0 投票
1 回答
1033 浏览

python - 余弦相似度python问题

嗨,我正在尝试计算我的查询与我用 python 中的信息检索程序返回的文档之间的余弦相似度。

对于余弦相似度,我使用这个实现:

我在这个网站上找到了这个解决方案,但我遇到了一些问题。I tf*idf 权重和每个文档的向量,这是文档向量和查询向量的示例:

好的,所以问题是有时我做余弦相似度,结果大于1,这怎么可能?余弦不能大于1?我的推理正确吗?在这种情况下做余弦相似度是否正确?请帮助我,谢谢

0 投票
2 回答
4240 浏览

python - python中元组的点积

我了解可以通过以下方式找到点积:

但我试图找到一个元组的点积说:

如何在不使用 numpy.

我不能只使用一些语句sum(p*q for p,q in zip(vector3, vector4))吗?

因为当我尝试相同时,我收到如下错误:

如何解决这个问题?

0 投票
1 回答
765 浏览

c - 带有 CUDA C 的假人点积

我正在尝试使用共享内存在 cuda c 中做一个关于点积的简单教程;代码非常简单,它基本上是在两个数组的元素之间进行乘积,然后对每个块的结果求和:

此代码与 Cuda by Example 书中提供的代码相同,唯一的区别在于向量 a、b 和 c 的定义(我定义它们的方式应该不是问题,因为我已经做过几次了)。

这就是问题所在:当我尝试运行程序时它崩溃了!终端说问题是:Failed to copy vector c from device to host (error code the launch timed out and was terminated)!

这很奇怪,因为我认为我已经以正确的方式分配了向量 c ......有没有人知道我做错了什么?是全局函数还是主函数有问题?

0 投票
1 回答
398 浏览

python - 没有 for 循环的子数组的点积

当我们有:

我想将它们的子数组相乘以获得

我使用生成器:

那么我如何在没有for循环的情况下在A,B内部进行数组乘法以获得数组C?

我试图使用np.tensordot,但我无法得到它

笔记:

这只是基本示例,对于我拥有的原始数据中的一些测试 cos

4*3*37 数组 A(500 000,3,3) B(3,500 000)

要做,对于我来说,for loop sems不是pythonic方式xD

0 投票
1 回答
137 浏览

c - 装配 MMX 点积分段错误

我正在尝试使用汇编语言对两个小数组执行简单的点积计算。这是我的代码:

从makefile编译:

结果是:

使用gdb分析原因显示如下:

我不知道为什么我不能将结果移回寄存器。任何建议都受到高度赞赏。

提前多次感谢您。

文森特

0 投票
1 回答
74 浏览

java - 3d 空间中的点无缘无故地接近 3d 空间中的平面

Java,程序,我有一个带 x、y、z 坐标的 Point3d 类和以下平均函数:

我也有这个类,用于由 3 个 3d 点之间的三角形形成的 3d 空间中的 2dPlane:

getRelativeOnPlane 用于查找特定点在平面的哪一侧。看起来它应该对你有用吗?你能看出它有什么问题吗?

无论如何,这是一个大问题,我有一个 CubeCollider 的以下类,扩展了抽象类 Collider,它设置了六个 TriPlanes 来检查一个点是否在立方体内:

函数 isInBounds 中的点 'center' 使用点 a 和 h 的平均值,但存在一些问题。来自 isInBounds 函数的“边界检查:”之类的调试报告“应该”(平面法线向量和点中心的点积)接近零,直到经过几次(几十次)检查迭代后,它变得完全0.0。有人可以告诉我为什么会这样吗?如果我没记错的话,函数 getRelativePointOnPlane 返回零应该意味着该点平面上,但它正在测试的点(中心),如果我没记错的话,应该所有平面之间,而不是任何平面上其中。我关于如何使用这些功能的逻辑是错误的,

这是控制台读取的内容:

0 投票
2 回答
1259 浏览

performance - Scipy Python中的高效并行稀疏矩阵点积

我有一个非常大(1.5M x 16M)的稀疏 csr scipy 矩阵 A。我需要计算的是每对行的相似性。我将相似性定义为:

为了计算所有成对的行相似度,我使用这个(或余弦相似度):

现在pairs[i, j] 是所有这样的i 和j 的第i 行和第j 行的相似度。这与行的成对余弦相似度非常相似。因此,如果有一种有效的并行算法可以计算成对余弦相似度,那么它也适用于我。

问题:这个点积非常慢,因为它只使用一个 cpu(我可以访问我服务器上的 64 个 cpu)。

我还可以将 A 和 AT 导出到一个文件并运行任何其他并行执行乘法运算的外部程序,并将结果返回给 Python 程序。

有没有更有效的方法来做这个点积?或并行计算成对相似度?

0 投票
4 回答
40223 浏览

r - 在r中查找点积

我试图在 R 中找到两个矩阵的点积。在必须转置的 q 矩阵中,我有三个不同的 q 值,它们是我之前随机生成的,在 z 矩阵中,三个随机生成的 z 值用作坐标一个随机点 i。我有:

但是,当我尝试计算 s[i] 时,我得到Error in t(q) * z : non-conformable arrays. 我不确定为什么会这样,因为它们似乎都具有相同的长度。

这是我第一次使用 R,所以我不确定发生了什么。

谢谢!

0 投票
3 回答
460 浏览

algorithm - 在python3中计算双和内点积的有效方法

我正在研究如何在 python3 中尽可能高效地计算形式的双倍总和内的点积:

其中 r_np 是一个包含数千个三元组的数组,而 xa 是一个常数三元组。三元组长度的时间N=1000约为2.4s. 同样使用numpy:

运行时间约为4.0s. 我认为这是由于没有大的矢量化优势,只有短的 3 点 3 是 np.dot,它被循环中的 N^2 吃掉了。但是,通过使用带有 map 和 mul 的普通 python3,我可以获得对第一个示例的适度加速:

运行时约2.0s

尝试使用 if 条件不计算大小写j=k,其中

因此点积也变为0,或者将总和分成两部分以达到相同的效果

两者都让它变得更慢。所以整个事情的比例为 O(N^2),我想知道是否通过一些方法,如排序或其他方法,可以摆脱循环并使其比例为 O(N logN)。问题是我需要一组N~6000三元组的个位数秒运行时,因为我有数千个这样的总和要计算。否则我必须尝试 scipy's weave 、numba、pyrex 或 python 或者完全走 C 路径……</p>

提前感谢您的帮助!

编辑:

这就是数据样本的样子: