我的代碼段作爲parfor goind的Matlab「Assertion Failed」錯誤?
display('Descriptor Extraction...');
DESCRIPTORS = {};
descriptor_for_each_class = {};
num_classes = length(imgs_dir);
IMAGES = {};
for i = 1:num_classes
class_name = classes{i};
fprintf('Feature Extraction for CLASS %s\n',class_name);
full_path = fullfile(imgs_path,class_name);
class_dir = dir(full_path);
image_names = {class_dir(3:length(class_dir)).name};
num_imgs = length(image_names);
descriptors = {};
parfor j = 1:num_imgs
image_name = image_names{j};
%fprintf('Feature Extraction for IMAGE %d/%d\n',j,num_imgs);
img_path = fullfile(full_path,image_name);
I = imread(img_path(:,:));
I = standarizeImage(I);
I = rgb2gray(I) ;
IMAGES{i,j}.I = I;
IMAGES{i,j}.class_name = class_name;
IMAGES{i,j}.name = image_name;
[f, d] = vl_dsift(I, 'size', binSize) ;
descriptors{j}=d;
end
DESCRIPTORS = [DESCRIPTORS descriptors];
end
當PARFOR部分完成的一個時代,在第二個時期的開始Matlab的給出了以下錯誤:
Error using parallel_function (line 589)
Assertion failed.
Error in feat_extraction (line 34)
parfor j = 1:num_imgs
我不能上找到的bug代碼。有什麼想法嗎?
可以最大限度地減少在這兩個循環的代碼,仍然能夠重現錯誤的問題? – 2013-03-05 14:33:47