def test(self): epoch = self.scheduler.last_epoch + 1 lr = self.scheduler.get_lr()[0] self.model.eval() qf = self.extract_feature(self.query_loader).numpy() gf = self.extract_feature(self.test_loader).numpy() ######################### re rank########################## q_g_dist = np.dot(qf, np.transpose(gf)) q_q_dist = np.dot(qf, np.transpose(qf)) g_g_dist = np.dot(gf, np.transpose(gf)) dist = re_ranking(q_g_dist, q_q_dist, g_g_dist) r = cmc(dist, self.queryset.ids, self.testset.ids, self.queryset.cameras, self.testset.cameras, separate_camera_set=True, single_gallery_shot=False, first_match_break=True) m_ap = mean_ap(dist, self.queryset.ids, self.testset.ids, self.queryset.cameras, self.testset.cameras) print('epoch:{:d} lr:{:.6f} [ re_rank] mAP: {:.4f} rank1: {:.4f} rank3: {:.4f} rank5: {:.4f} rank10: {:.4f}' .format(epoch, lr, m_ap, r[0], r[2], r[4], r[9])) #########################no re rank########################## dist = cdist(qf, gf) r = cmc(dist, self.queryset.ids, self.testset.ids, self.queryset.cameras, self.testset.cameras, separate_camera_set=True, single_gallery_shot=False, first_match_break=True) m_ap = mean_ap(dist, self.queryset.ids, self.testset.ids, self.queryset.cameras, self.testset.cameras) print('epoch:{:d} lr:{:.6f} [no re_rank] mAP: {:.4f} rank1: {:.4f} rank3: {:.4f} rank5: {:.4f} rank10: {:.4f}' .format(epoch, lr, m_ap, r[0], r[2], r[4],r[9])) qf = self.extract_feature(self.query_loader1).numpy() gf = self.extract_feature(self.test_loader1).numpy() ######################### re rank########################## q_g_dist = np.dot(qf, np.transpose(gf)) q_q_dist = np.dot(qf, np.transpose(qf)) g_g_dist = np.dot(gf, np.transpose(gf)) dist = re_ranking(q_g_dist, q_q_dist, g_g_dist) r = cmc(dist, self.queryset1.ids, self.testset1.ids, self.queryset1.cameras, self.testset1.cameras, separate_camera_set=True, single_gallery_shot=False, first_match_break=True) m_ap = mean_ap(dist, self.queryset1.ids, self.testset1.ids, self.queryset1.cameras, self.testset1.cameras) print('epoch:{:d} lr:{:.6f} [ re_rank] mAP: {:.4f} rank1: {:.4f} rank3: {:.4f} rank5: {:.4f} rank10: {:.4f}' .format(epoch, lr, m_ap, r[0], r[2], r[4], r[9])) #########################no re rank########################## dist = cdist(qf, gf) r = cmc(dist, self.queryset1.ids, self.testset1.ids, self.queryset1.cameras, self.testset1.cameras, separate_camera_set=True, single_gallery_shot=False, first_match_break=True) m_ap = mean_ap(dist, self.queryset1.ids, self.testset1.ids, self.queryset1.cameras, self.testset1.cameras) print('epoch:{:d} lr:{:.6f} [no re_rank] mAP: {:.4f} rank1: {:.4f} rank3: {:.4f} rank5: {:.4f} rank10: {:.4f}' .format(epoch, lr, m_ap, r[0], r[2], r[4], r[9]))
def test(self): epoch = self.scheduler.last_epoch + 1 self.ckpt.write_log('\n[INFO] Test:') self.model.eval() self.ckpt.add_log(torch.zeros(1, 5)) qf = self.extract_feature(self.query_loader).numpy() gf = self.extract_feature(self.test_loader).numpy() if self.args.re_rank: q_g_dist = np.dot(qf, np.transpose(gf)) q_q_dist = np.dot(qf, np.transpose(qf)) g_g_dist = np.dot(gf, np.transpose(gf)) dist = re_ranking(q_g_dist, q_q_dist, g_g_dist) else: dist = cdist(qf, gf) r = cmc(dist, self.queryset.ids, self.testset.ids, self.queryset.cameras, self.testset.cameras, separate_camera_set=False, single_gallery_shot=False, first_match_break=True) m_ap = mean_ap(dist, self.queryset.ids, self.testset.ids, self.queryset.cameras, self.testset.cameras) self.ckpt.log[-1, 0] = m_ap self.ckpt.log[-1, 1] = r[0] self.ckpt.log[-1, 2] = r[2] self.ckpt.log[-1, 3] = r[4] self.ckpt.log[-1, 4] = r[9] best = self.ckpt.log.max(0) self.ckpt.write_log( '[INFO] mAP: {:.4f} rank1: {:.4f} rank3: {:.4f} rank5: {:.4f} rank10: {:.4f} (Best: {:.4f} @epoch {})' .format(m_ap, r[0], r[2], r[4], r[9], best[0][0], (best[1][0] + 1) * self.args.test_every)) if not self.args.test_only: self.ckpt.save(self, epoch, is_best=((best[1][0] + 1) * self.args.test_every == epoch))