请问大佬,训练验证精度都很好,但单独用测试集测试效果却很差,是什么原因了
Galaxy-yyyyy opened this issue · 7 comments
Galaxy-yyyyy commented
请问大佬,训练验证精度都很好,但单独用测试集测试效果却很差,是什么原因了
SoftwareGift commented
测试的代码是我写的这个吗,还是其他的平台上进行测试。如果是我写的那个应该是不会这种情况。
你没有说具体的问题,不是很好回答。
Galaxy-yyyyy commented
python main.py --config="cfgs/mobilenetv2.yaml" --resume ./checkpoints/mobilenetv2_bs32/_4_best.pth.tar --phase-test True --val True --val-save True
用的这个,直接在main.py里面修改,然后测试。
用的是整脸进行训练,训练时,训练集和验证集的精度都可以达到99%以上,而测试的时候,精度只有50%左右。
Galaxy-yyyyy commented
@SoftwareGift 训练的是深度图
huangyuyu0426 commented
请问你们训练时的数据集怎么得到的?下不到
boom9807 commented
riskeverything commented
luoyuncen commented
这个是因为原始下载的代码当中,对于test的标签文件,有一句代码被注掉了,采用了随机的标签值。在read_data.py文件下。
if self.phase_test:#测试阶段
depth_dir = self.depth_dir_test
label_dir = self.label_dir_test
label = int(label_dir[idx])
#label = np.random.randint(0,2,1)
label = np.array(label)
上面这个我已经改回来了。原始代码用的是label = np.random.randint(0,2,1),这个标签是随机的。所以检测效率是0.5左右。