gpt4 book ai didi

matlab - Parfor切片变量导致Matlab崩溃

转载 作者:行者123 更新时间:2023-12-03 17:29:25 25 4
gpt4 key购买 nike

我正在尝试证明代码可以并行运行,除了将数据辅助到 slice 变量时,代码可以正常工作,我相信我尊重Matlab的parfor限制,并且实际上它可以在parfor迭代中顺利运行,但是Matlab崩溃时要退出。

将值分配给“功能”时,问题出在最后一行(我也尝试过使用单元格,但存在相同的问题):

if (matlabpool('size')==0) 
matlabpool();
end


%Prepare iterations
numTrain = size(Xnorm(1000:1250,:),1);
numFeatures = size(Xnorm,2);
classData=Y(1000:1250,:);

%Linear Space for Grid
zz = linspace(0.1,20,10);
zsize=length(zz);

%Definitions to use inside parfor
features=zeros(numFeatures,1);
fmax=@(x) max(x);

parfor i = 1:numFeatures

%Internal variables definition
CsCross=zeros(zsize,1);
SigmaCsMax=zeros(zsize,1);

fprintf('\nFeature:%i...',i);

for j=1:zsize

%Precompute kernel

K = [ (1:numTrain)' , gpuKernel(Xnorm(1000:1250,i),zz(j)) ];

for iter = 1:zsize

options = sprintf('-c %d -t 4 -v 10 -q',zz(iter));
model = svmtrain(classData, K, options);
CsCross(iter)=model;

end

SigmaCsMax(j)=fmax(CsCross);
end
temp=fmax(SigmaCsMax);

%%% HERE THE ERROR IS CAUSED. When removed code runs smoothly
features(i)=temp;

end

有什么建议吗?我究竟做错了什么? (只是说代码可以在没有parfor的情况下工作)

提前致谢,

塞尔吉

最佳答案

我找到了使其工作的方法。我将“功能”预定义为features = [](没有任何预定义的大小),然后让parfor构建整个数组。令人惊讶的是结果尊重顺序。这里的代码(我省略了初始部分):
[.....]

%HERE I DEFINE AND EMPTY ARRAY
features=[];


parfor i = 1:numFeatures

%Internal variables definition
CsCross=zeros(zsize,1);
SigmaCsMax=zeros(zsize,1);
temp=0;

fprintf('\nFeature:%i...',i);

for j=1:zsize

%Precompute kernel

K = [ (1:numTrain)' , gpuKernel(Xnorm(1000:1250,i),zz(j)) ];

for iter = 1:zsize

options = sprintf('-c %d -t 4 -v 10 -q',zz(iter));
model = svmtrain(classData, K, options);
CsCross(iter)=model;

end

SigmaCsMax(j)=fmax(CsCross);
end
temp=fmax(SigmaCsMax);

%%% EVERY ITERATION ADD NEW RESULTS

features=[features,temp];

end

在此处找到有关其工作原理的详细说明:
http://www.mathworks.es/es/help/distcomp/getting-started-with-parfor.html#brdqn6p-1

希望对您有所帮助。

塞尔吉

关于matlab - Parfor切片变量导致Matlab崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24517040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com