Error using pdist2mex Error in kmeans>distfun
이전 댓글 표시
Hi, To represent our data (3233477*256) with Bag of visual word (BOW) which use KMeans clustering to extract visual words when we choose K=5000 this problem show:
Error using pdist2mex
Requested 3233477x5000 (120.5GB) array exceeds maximum array size preference. Creation of arrays greater than this limit may take a
long time and cause MATLAB to become unresponsive. See array size limit or preference panel for more information.
Error in kmeans>distfun (line 747)
D = pdist2mex(X,C,'sqe',[],[],[]);
Error in kmeans/loopBody (line 445)
D = distfun(X, C, distance, 0, rep, reps);
Error in internal.stats.parallel.smartForReduce (line 136)
reduce = loopbody(iter, S);
Error in kmeans (line 335)
ClusterBest = internal.stats.parallel.smartForReduce(...
Error in BOWHistogram (line 12)
[idx,c,sumd,D2] = kmeans(double(Tab_Feature_Data),NumClust);
What can I do to fix the error? Please advise me
댓글 수: 2
Rik
2018년 3월 18일
Can you split the array into smaller parts? Unless you get a 120GB contiguous block of memory, you can't use this method. I'm not familiar enough with what you want to do to suggest a real solution.
Tripoli Settou
2018년 3월 18일
채택된 답변
추가 답변 (1개)
carpcarp carpcarp
2021년 4월 2일
0 개 추천
我也遇到过这个问题,你可以看看你是不是命名了一个kmeans的m文件,如果有,并且是自己添加的,先把它删除(或者先发到qq等可以保存代码的应用后删除),然后你再去跑你的程序就可以成功了。
댓글 수: 2
carpcarp carpcarp
2021년 4월 2일
You can see whether you have named a .m file called kmeans, like this:
if so, please delete it. Then run your program again.
Or if you don't know where is kmeans.m, you can download an application called everything.
My English level is limited, so I can only describe it simply.(←from translator)
Walter Roberson
2021년 4월 2일
(User points out that there can be problems if you accidentally have your own kmeans.m instead of using MATLAB's)
카테고리
도움말 센터 및 File Exchange에서 k-Means and k-Medoids Clustering에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!