问题标签 [vectorization]

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 投票
4 回答
2421 浏览

matlab - 从开始/结束索引列表创建矢量化数组

M我有一个包含一堆间隔的开始/结束索引的两列矩阵:

如何生成所有区间索引的向量:

我正在使用循环执行上述操作,但我想知道是否有更优雅的矢量化解决方案?

0 投票
4 回答
4000 浏览

gcc - double 和 ffast-math 上的自动矢量化

为什么一定要-ffast-math配合g++使用s来实现循环的向量化double?我不喜欢-ffast-math,因为我不想失去精度。

0 投票
4 回答
3529 浏览

matlab - 向量化矩阵中不同对角线的和

我想对以下 MATLAB 代码进行矢量化。我认为它一定很简单,但我发现它仍然令人困惑。

代码从另一个得分表C计算动态编程算法的得分表S。 对角线求和是为用于生成C的各个数据片段生成分数,用于所有可能的片段(大小为 r)。

提前感谢您的任何答案!对不起,如果这个应该很明显......

注意
内置的 conv2 比 convnfft 更快,因为我的 eye(r) 非常小( 5 <= r <= 20 )。convnfft.m 声明 r 应该 > 20 才能体现任何好处。

0 投票
3 回答
12156 浏览

matlab - MATLAB 中的矢量化简介 - 有什么好的教程吗?

我正在寻找有关 MATLAB 中矢量化(循环)的任何好的教程。

我有非常简单的算法,但它使用两个for循环。我知道矢量化它应该很简单,我想学习如何去做,而不是向你询问解决方案。

但是为了让您知道我遇到了什么问题,以便您能够建议展示如何解决类似问题的最佳教程,这是我的问题的概要:

所以,我不是在寻求解决方案。我要求一个很好的教程,在 MATLAB 中矢量化循环的例子。我想学习如何做,并自己做。

0 投票
3 回答
770 浏览

matlab - 在大量矩阵上并行化或矢量化所有对抗所有操作?

我有大约 5,000 个矩阵,它们具有相同的行数和不同的列数(20 x ~200)。这些矩阵中的每一个都必须在动态规划算法中相互比较。

这个问题中,我询问了如何快速进行比较,并得到了一个涉及 2D 卷积的出色答案。连续地,迭代地应用该方法,就像这样

对于数据的小子集来说速度很快(例如,对于 9 个矩阵,9*9 - 9 = 72 次调用在 ~1 秒内进行,870 次调用在 ~2.5 秒内)。
然而,对所有数据进行操作需要近 2500 万次调用。
我还尝试使用 deal() 来制作一个完全由数据中的下一个元素组成的单元格数组,因此我可以在单个循环中使用 cellfun() :

不幸的是,这并没有真正更快,因为所有时间都在 compare() 中。这两个代码示例似乎都不适合并行化。我无法弄清楚如何对变量进行切片。
compare() 是完全向量化的;它专门使用矩阵乘法和 conv2()(我的印象是所有这些操作,包括 cellfun(),都应该在 MATLAB 中是多线程的?)。

有没有人看到(明确的)并行化解决方案或更好的问题向量化?

注意
我意识到我的两个例子都是低效的——如果它计算一个三角形单元阵列,第一个例子的速度会快两倍,而第二个例子仍然在计算自我比较。但是,良好的并行化所节省的时间更像是 16 倍(如果我在每个人的机器上安装 MATLAB,则为 72 倍)。

另外
还有内存问题。我使用了几个 eval 将 H 的每一列附加到一个文件中,名称如 H1、H2 等,然后清除 H i。不幸的是,保存速度很慢......

0 投票
1 回答
507 浏览

matlab - Matlab中的矢量化循环 - 性能问题

这个问题与这两个有关:
MATLAB中的向量化简介-有什么好的教程吗?
同时使用两个数组中的元素的过滤器

根据我阅读的教程,我试图对一些需要大量时间的过程进行矢量化。

我重写了这个:

进入这个:

哪里
A是矩阵 512x512
w是窗口大小的一半,通常等于 5
sigma是范围 [0 1] 中的参数(通常是:0.1、0.2 或 0.3 之一)
所以I矩阵将有 512x512x121 = 31719424 个元素

但是这个版本似乎和第一个一样慢,而且它使用了大量的内存,有时会导致内存问题。

我想我做错了什么。可能是关于矢量化的一些逻辑错误。好吧,事实上我并不感到惊讶 - 这种方法创建了非常大的矩阵,并且计算可能成比例地更长。

我也尝试使用 nlfilter 编写它(类似于Jonas 给出的第二个解决方案),但它似乎很难,因为我使用的是Matlab 6.5 (R13)(没有可用的复杂函数句柄)。

所以再一次,我要求的不是现成的解决方案,而是一些可以帮助我在合理时间内解决这个问题的想法。也许你会指出我做错了什么。

编辑:
正如 Mikhail 所建议的,分析的结果如下:
65% 的时间花在线路上 H= exp(...)
25% 的时间用于im2col

0 投票
1 回答
626 浏览

javascript - 当前是否有任何 JS 实现支持(或在路线图上支持)对数组或类似的快速矢量化操作?

我想在 JavaScript 中做一些矩阵/向量算术,并且想知道是否有任何浏览器或其他 JS 实现实际上支持向量化操作,例如快速求和两个数组的条目(或求和,或其他) . 即使目前这并不意味着它可以编译为矢量化操作,但至少有一些语言支持在它实现时会很好——我会将函数或语法的存在作为朝着正确方向迈出的一步. (可以理解,“矢量化 javascript”搜索几乎都是关于图形和 SVG 的。)

0 投票
1 回答
13937 浏览

r - 如何矢量化 R strsplit?

创建使用 的函数时strsplit,向量输入的行为不符合预期,sapply需要使用。这是由于产生的列表输出strsplit。有没有办法对过程进行矢量化——也就是说,函数在列表中为输入的每个元素生成正确的元素?

例如,要计算字符向量中单词的长度:

理想情况下,类似length(strsplit(words,"")[[.]])where的东西.被解释为输入向量的相关部分。

0 投票
4 回答
4762 浏览

php - 光栅图像到矢量图像的服务器端转换

我想将用户上传的图像(各种格式和条件)转换为矢量图像格式,例如 .eps。我主要在 PHP 中工作。

存在哪些选择?

0 投票
3 回答
1120 浏览

r - 从同一行中指示的列返回值

我被一个简单的循环困住了,这个循环需要一个多小时才能运行,并且需要帮助来加快它的速度。

基本上,我有一个 31 列和 400 000 行的矩阵。前 30 列有值,第 31 列有列号。我需要每行检索第 31 列指示的列中的值。

示例行:[26,354,72,5987..,461,3] (这意味着第 3 列中的值被寻求 (72))

太慢的循环如下所示:

我认为这会起作用:

...但它会导致“错误:无法分配大小为 2.8 Mb 的向量”。

我担心这是一个非常简单的问题,所以我花了几个小时试图理解 apply、lapply、reshape 等等,但不知何故我无法掌握 R 中的矢量化概念。

矩阵实际上有更多列也进入 a 参数,这就是我不想重建矩阵或拆分它的原因。

非常感谢您的支持!

克里斯