目标检测mAP低的问题
Created by: lxwzafu
版本、环境信息: 1)PaddlePaddle版本:paddlepaddle-1.5.2 2)CPU:Intel Core i7 3)GPU:AMD (使用CPU训练) 4)系统环境:Windows10、VS2017、Python36_64 模型信息 1)模型名称:SSD 2)使用数据集名称:pascalvoc(2007+2012) 3)使用算法名称:课程9-深度学习进阶CV-目标检测 4)模型链接:https://aistudio.baidu.com/aistudio/projectdetail/78972 问题描述: 我在项目自带的pascalvoc数据集中筛选出cat类进行目标检测训练,train.txt中包含1321张图片,eval.txt中包含418张图片,用于验证。label_list中含‘background’和‘cat’类,因为是单目标检测,若label_list中只含一个类,fluid.metrics.DetectionMAP函数会出错,所以得放入一个背景类。做了两次实验,num_epochs=200,train_batch_size=32。数据获取改成单线程同步读取,因为在windows下无法使用多线程。第一次实验使用作者写的optimizer_rms_setting优化器进行参数更新,每200batch运行一次验证获取mAP值,数值如下: cur_map loss 0.401038108 4.509574 0.386015644 3.8845212 0.381343124 4.171424 0.413110944 3.7394743 0.406075048 3.8936315 0.386355571 4.133335 0.416194226 3.8389487 0.408239713 3.628829 0.423950556 3.948738 0.400122348 3.497662 0.424795194 3.7138293 0.415790906 3.1223803 0.403868533 3.5735998 0.415624678 3.7750335 0.433851609 3.438888 0.434546748 3.7085996 0.435275108 3.5607305 0.428440862 3.4584045 0.427669791 3.374731 0.439530656 3.2104259 0.42198592 3.9617386 0.42453756 3.475599 0.428695551 3.478986 0.416125105 3.5821452 0.430535142 3.7715912 0.433114989 2.8062937 0.422919702 3.1231127 0.420621741 3.394291 0.430125523 3.5610447 0.447735053 3.8090098 0.430422501 3.6917052 0.434772542 3.5026045 0.4220989 3.4925175 0.416325248 3.3239183 0.429927688 3.6764746 0.420368786 3.676159 数值没有什么变化
第二次实验使用作者写的optimizer_momentum_setting优化器进行参数更新,每50batch运行一次验证获取mAP值,数值如下: cur_map loss 0.057558451 7.497837 0.34846935 5.612012 0.364065223 4.565735 0.36959216 4.259963 0.38226176 5.737204 0.357358903 4.33951 0.370431751 4.663577 0.345411193 4.598401 0.370554093 4.3201466 0.357770777 4.7914867 0.333687341 4.660826 0.369788082 3.8212013 0.372706687 3.608189 0.359775802 3.8275027 0.360053289 4.1805964 0.364191317 4.2182703 0.373687946 4.082178 0.359452649 3.650662 0.354930176 3.8766615 0.387779355 3.9721751 0.378488525 4.7390213 0.378467972 4.0708976 0.373995656 5.01661 0.360868541 4.03063 0.361844919 3.5636005 0.376199287 4.404808 0.369799011 3.9359367 0.387137894 3.5793946 0.367127118 3.8909748 0.36999783 3.7452707 0.363324709 3.7088442 0.377790974 4.274535 0.38028079 3.9608033 0.368251289 3.8697753 除了第一次map较低外,其他的都差不多。程序还没运行完,但是从这些值上看基本又稳定在0.36、0.37左右了。
在这之前我还筛选了person做了实验,使用的就是作者本身用的自适应学习率函数:optimizer_rms_setting(),基本稳定在0.27左右: cur_map loss 0.271017003 4.0842643 0.273277144 4.1505394 0.273939637 3.598618 0.263916597 4.5602117 0.277840264 4.044784 0.279570671 3.9616172 0.257307805 4.434471 0.276048804 4.06717 0.260588177 3.9932323 0.26620424 4.6699104 0.272064547 3.9836817 0.267759817 5.0030904 0.271210906 4.33004 0.278726136 3.9272408 0.270509638 4.5176706 0.267093576 4.361747 0.27826489 4.0909433 0.2671812 3.8301497 0.27596723 4.243762 0.266042759 4.4996 0.265738969 3.8699636 0.278968414 4.2077403 0.270603821 3.623713 0.259415145 4.8220344 0.263714388 3.5142727 0.270260754 4.838455 0.263265262 4.0418158 0.275740452 4.0007358 0.268836637 3.8746395 0.269162469 4.252842 0.269541249 4.1795373 0.273580516 3.9456298 0.263554201 4.2159534 0.264796605 4.194477 0.267784469 3.753949 0.275070647 4.0002995 0.289800214 4.350559 0.272924498 3.59967 0.265612433 3.8872614 0.274582691 4.1932406 0.279738729 4.4396467 0.264606354 4.1901836 0.277842196 3.622017 0.272918147 4.071793 0.264514948 3.9725955 0.262952154 3.901626 0.284566124 4.612727 0.273049963 4.3832192 0.262273535 3.9129596 0.26929003 4.338606 0.269419755 3.8021033 0.265691429 4.2362003 0.262486182 4.015025 0.269922239 4.1588993 0.268287621 4.242667 0.26936019 4.1861496 0.302074754 4.018547 0.29717744 4.426216 0.267974339 4.0039506 0.27698759 5.1435604 0.266381649 4.422455 0.277436783 3.7241888 0.267808355 3.817116 0.277986867 4.234277 0.278547866 3.8970375 0.265607014 4.344372 0.282091935 4.899031 0.277211862 4.2127295 0.281390642 4.0112586 0.259015838 4.34831 0.271437682 4.115486 0.273540658 3.9886785 0.275535829 3.9546206 0.271657042 4.8522053 0.273558704 3.9546099 0.276185662 3.9880788 0.269890331 3.6065412 0.276671067 4.0261145 0.280902599 4.281569 0.264994974 4.09769 0.27696953 3.9336991 0.279407648 3.7433467 0.27384953 4.406528 0.273541627 4.118293 0.282407944 4.0481176 0.277520763 4.1002007 0.27042943 4.042459 0.270768856 3.8273497 0.278679286 4.2119284 0.284359152 4.1706233 0.286372468 3.872911 0.270206749 3.767016 0.2661639 4.452511 0.273982724 4.282827 0.255015897 3.7507548 0.255767599 4.012899 0.260743345 3.9487562 0.27942308 4.085628 0.25911096 4.2606645 0.282657822 3.8873632 0.281804934 3.8966327 0.258658702 4.3910728 0.274708604 4.353629 0.26370843 4.090207 0.269363664 4.065405 0.277598058 3.9665606 0.276844516 4.0097427 0.282981756 3.9898367 0.280828342 3.7220674 0.275673019 3.6249003 0.26866406 4.3624153 0.27868746 4.7958183 0.275721014 4.197876 0.26534761 4.2395606 0.273167978 4.2453923 0.27628234 3.6619444 0.285355339 3.9863896 0.278897494 4.357842 0.277400516 3.71105 0.271227087 3.878108 0.272410929 5.6358614 0.28286685 4.6129427 0.274320478 4.044053 0.27780581 3.8276782 0.270045703 4.1979427 0.269200129 4.0696354 0.275690913 3.9244342 0.270083599 3.891468 0.279558768 4.164774 0.271133194 4.397052 0.27315853 3.8719923 0.281458286 4.1534033 0.269017061 3.8921132 0.286189233 3.9086173 0.275371447 4.583082 0.266326169 4.0649996 0.251225586 3.777151 0.259386227 4.198347 0.273918363 3.988635 0.275885453 3.74576 0.266806657 3.825213 0.278296436 4.0466995 0.27637093 4.3015046 0.274092212 3.9031382 0.27555311 3.721381 0.285744493 3.9825268 0.272294986 3.792323 0.269404861 3.8513217 0.263179811 4.000356 0.270443616 3.698358 0.273850948 4.1512 0.275017562 4.6343927 0.272068915 5.575061 0.258583374 4.3410587 我对训练出来的猫类模型和人类模型都进行了测试,效果都很不理想。请百度的工程师给予指导!问题到底出在哪里?