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

时间:2013-06-26 14:22:51

标签: matlab machine-learning bigdata gpu-programming

假设我有一个权重矩阵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);

1 个答案:

答案 0 :(得分:2)

这么维度是什么意思?它只是一个m×n矩阵吗?

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

权重=

[1 4 2

5 3 1]

数据=

[2 5 1

1 2 2]

你想弄清楚哪一排权重最接近数据行?在这种情况下,这将是两行数据的第一行权重。

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

编辑:

我喜欢Rody的Dup。评论,如果我是正确的,请查看:Link Here