dgd_person_reid icon indicating copy to clipboard operation
dgd_person_reid copied to clipboard

CMC calculation error

Open jeffshih opened this issue 5 years ago • 0 comments

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?

jeffshih avatar Sep 17 '19 08:09 jeffshih