在数据矩阵中查找与每个实例最接近的权重向量



假设我有一个权重矩阵Wnxm,其中m是变量的数量,n是实例的数量。此外,我具有相同大小的数据矩阵X。我试图在X中找到与每个实例最接近的权重向量。然而,两个矩阵都是维数很大的,因此简单的方法是不够的。我在MATLAB上尝试了一些GPU技巧,但效果并不好,因为它是按顺序计算每个实例的最接近权重的顺序方法。我现在正在寻找高效的一次性代码。这需要所有的W和X,并通过一些MATLAB技巧找到赢家,可能还添加了一些GPU。有没有人可以在MATLAB中建议任何代码片段?

这是我为顺序写的东西

        x_in_d = gpuArray(x_in); % take input instance to device
        W_d = gpuArray(W); % take weight matrix to device
        Dx = W_d - x_in_d(ones(size(W_d,1),1),logical(ones(1,length(x_in_d))));
        [d_min,winner] = min(sum((Dx.^2)'));
        d_min = gather(d_min); %gather results
        winner = gather(winner);

你所说的如此多维是什么意思?它只是一个mxn矩阵,对吧?

如果你能根据你的描述(这不是最清楚的)提供一些样本数据,这将非常有帮助,我认为你的数据是这样的。

权重=

[1 4 2

5 3 1]

data=

[2 5 1

12 2]

你想知道哪行权重最接近数据行吗?在这种情况下,这将是两行数据的第一行权重。

请编辑你的问题,澄清你的要求,并考虑使用一些例子。

编辑:

我喜欢Rody的Dup。评论,如果我是正确的,请查看:链接此处

最新更新