假设我有一个权重矩阵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);
答案 0 :(得分:2)
这么维度是什么意思?它只是一个m×n矩阵吗?
如果你能根据你的描述提供一些样本数据(这不是最清楚的),那将是非常有用的,这就是我认为你的数据的样子。
权重=
[1 4 2
5 3 1]
数据=
[2 5 1
1 2 2]
你想弄清楚哪一排权重最接近数据行?在这种情况下,这将是两行数据的第一行权重。
请编辑您的问题,以澄清您的要求,并考虑使用一些示例。
编辑:
我喜欢Rody的Dup。评论,如果我是正确的,请查看:Link Here