0

假设我有一个权重矩阵W nxm,其中 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);
4

1 回答 1

2

这么立体是什么意思?这只是一个 mxn 矩阵,对吗?

如果您可以根据您的描述(这不是最清楚的)提供一些示例数据,那将非常有帮助,这就是我认为您的数据的样子。

权重=

[1 4 2

5 3 1]

数据=

[2 5 1

1 2 2]

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

请编辑您的问题以澄清您的要求并考虑使用一些示例。

编辑:

我喜欢罗迪的 Dup。评论,如果我是正确的,请查看:链接在这里

于 2013-06-26T14:32:53.477 回答