问题标签 [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.
vectorization - 两个 16 位整数向量与 C++ 中的 AVX2 的内积
我正在寻找最有效的方法来将两个对齐的 int16_t 数组相乘,其长度可以用 AVX2 除以 16。
在乘以一个向量后x
,我从 开始,_mm256_extracti128_si256
得到_mm256_castsi256_si128
的低部分和高部分,x
然后将它们与_mm_add_epi16
.
我复制了结果寄存器并应用于_mm_move_epi64
原始寄存器并再次添加了两者_mm_add_epi16
。现在,我认为我有:
-, -, -, -, x15+x7+x11+x3, x14+x6+x10+x2, x13+x5+x9+x1, x12+x4+x8+x0
在 128 位寄存器内。但是现在我被卡住了,不知道如何有效地总结剩余的四个条目以及如何提取 16 位结果。
python - Gekko 数组与 Numpy 数组的内积
我正在尝试使用Gekko 方程中的 Gekkonp.inner
维数数组来执行维数 (30,34) 的 numpy 数组的内积,(34,34)
但它会抛出错误,即“没有等式 (=) 或不等式 (>,<) 的等式” . 不允许在 Gekko 方程中使用 numpy 函数吗?如果不是,那么执行诸如等操作的替代方法是np.inner
什么np.diag
?
c++ - 在 C/C++ 中使用 AVX2 的两个无符号字节向量的内积
我想使用 SSE/AVX2 实现快速相关系数计算。操作数是两个unsigned char
向量。该功能应与此大致等效:
参数length
范围从 1 到小于 1000。
为了做到这一点,我研究了如何实现两个无符号字节数组的内积。但是,我想不出不涉及将所有无符号 8 位值转换为有符号 16 位值的解决方案。
内在_mm256_maddubs_epi16(a, b)
期望b
是一个有符号字节。在这种情况下,这不是问题,因为从 b 中减去某个常数(此处为:127)不会改变相关系数。不幸的是,我找不到允许我从产生有符号字节的无符号字节中减去 127 的内在函数(不依赖于一些二进制补码魔法)。
这里计算内积(最后是相关系数)的最佳方法是什么?
附录:
下面是我目前对纯内积的实现。我决定转换为 16 位整数以避免溢出错误。 更新:从一次读取 128 位更改为 256 位。
这大约需要简单 C++ 实现的 20% 时间(见下文)。考虑到 AVX 代码同时适用于 16 个 16 位整数这一事实,我预计会有更高的增益。- 这是合理的还是我错过了什么?
展开 AVX 代码中的最后一个循环不会减少计算时间。
c++ - C++ std::inner_product 有效但不应该
我std::inner_product
用来计算 2 中公共前缀的长度strings
:
我希望它的大小a
小于b
. 如果大小大于
大小,为什么它会起作用?
这是一个标准实现(无效,但仍然可以):a
b
first2
first1
这是未指明行为的情况吗?
std::inner_product
arrays - 内积如何推广到高维数组?
接受两个函数参数和两个数组的 APL 风格的内积运算符(高阶函数)如何推广到两个以上的维度?我看到结果数组的维数等于数组维数之和减去 2,并且第一个数组m的最后一个维的大小必须等于第二个数组n的第一个维的大小.
我将不失一般性假设函数是加法和乘法。然后,在一维中,向量的相应元素相乘并将这些乘积相加以产生向量点积(标量)。
同样,在二维中,结果矩阵的 [ m, n ] 元素是第一个矩阵的第m列和第二个矩阵的第n行的点积。
但是当我在内积函数的描述中达到这一点时,他们通常会说“具有对更多维度的明显概括”,或者根本不提及更高维度。这不是很有帮助。谁能解释它是如何计算的?
python - Python TypeError:列表索引必须是整数或切片,而不是浮点错误
我得到一个 TypeError: list indices must be integers or slices, not float on the Fourth line of code 当我运行它时。nums 和 nums2 只是要求用户提供一个数字列表,这些数字将用于计算我提供的代码中的内积。
我不确定为什么会发生此错误以及如何解决此问题,因此不胜感激。
python - Python 的内积是错误
我的代码在下面,但是我的内积代码得到了这个奇怪的输出,不知道为什么它没有计算正确的内积。nums 和 nums2 要求用户提供一个相等的数字列表,其中将计算内积。任何援助将不胜感激。
sas - sas中表和列之间的内积
我想计算表(矩阵)和列(向量)之间的内积。以下是示例数据集。
我想v1*0.1 + v2*0.2 + v3*0.3
按每一行计算。最终结果将如下所示:
作为一列。
其中分别计算
谢谢。
我尝试proc transpose
了tempdf
数据集并合并数据集中的coef
列,testcoef
然后通过与列相乘对所有列进行数组处理coef
,并最终将所有列相加。
但是如果数据集很大,这个过程会很慢,我想知道是否有更聪明或更快的方法来做到这一点。
final_out
表将像: