dgd_person_reid
dgd_person_reid copied to clipboard
CMC calculation error
I can train and test all training script on the dataset(except Shinpuhkan dataset), but when it comes to compute cmc(cumulative match characteristic), when running eval/metric_learning.py, it gives the following error:
sklearn.externals.joblib.externals.loky.process_executor.TerminatedWorkerError: A worker process managed by the executor was unexpectedly terminated. This could be caused by a segmentation fault while calling the function or by an excessive memory usage causing the Operating System to kill the worker. The exit codes of the workers are {SIGSEGV(-11)}
at line
C =_eval_cmc(PX,PY,GX,GY,M)
and
D = pairwise_distance(GX, PX, metric='mahalanobis', VI=M, n_jobs=-1)
in cuhk01, cuhk03 and prid dataset.
I get correct result (nearly the same with paper) on viper, 3dpes, and ilids. Which means the _eval_cmc method and scipt.pairwise_distance are working just fine.
I do some search on stackoverflow and scipy doc, even loky, someone suggest this answer
And someone said it is a joblib backend bug using uwsgi, but I can produce the result on last 3 dataset so I guess it's not the problem.
Anyone can run this metric_learning.py without error can give me some idea?
Is it really memory problem. The input GX and PX shape which induce error on pairwise_distances are
cuhk03 (978, 256) (956, 256)
cuhk01 (972, 256) (972, 256)
prid (649, 256) (100, 256)
The following works just fine and gives correct top-1, top-5, top-10 and top-20 score.
viper (308, 256) (316, 256)
3dpes (308, 256) (228, 256)
ilids (142, 256) (118, 256)
I'm running this test on GTX 2080, 8g DDR4 ram , i7 7700. Is this really relate to excessive memory usage?