def test(test_exe, test_program, test_out, args): featureLs = None featureRs = None out_feature, test_reader, flods, flags = test_out for idx, data in enumerate(test_reader()): res = [] res.append( test_exe.run(test_program, feed={u'image_test': data[0][u'image_test1']}, fetch_list=out_feature)) res.append( test_exe.run(test_program, feed={u'image_test': data[0][u'image_test2']}, fetch_list=out_feature)) res.append( test_exe.run(test_program, feed={u'image_test': data[0][u'image_test3']}, fetch_list=out_feature)) res.append( test_exe.run(test_program, feed={u'image_test': data[0][u'image_test4']}, fetch_list=out_feature)) featureL = np.concatenate((res[0][0], res[1][0]), 1) featureR = np.concatenate((res[2][0], res[3][0]), 1) if featureLs is None: featureLs = featureL else: featureLs = np.concatenate((featureLs, featureL), 0) if featureRs is None: featureRs = featureR else: featureRs = np.concatenate((featureRs, featureR), 0) result = {'fl': featureLs, 'fr': featureRs, 'fold': flods, 'flag': flags} scipy.io.savemat(args.feature_save_dir, result) ACCs = evaluation_10_fold(args.feature_save_dir) with open(os.path.join(args.save_ckpt, 'log.txt'), 'a+') as f: f.writelines('eval model {}\n'.format(args.model)) for i in range(len(ACCs)): print('{} {}'.format(i + 1, ACCs[i] * 100)) with open(os.path.join(args.save_ckpt, 'log.txt'), 'a+') as f: f.writelines('{} {}\n'.format(i + 1, ACCs[i] * 100)) print('--------') print('AVE {}'.format(np.mean(ACCs) * 100)) with open(os.path.join(args.save_ckpt, 'log.txt'), 'a+') as f: f.writelines('--------\n') f.writelines('AVE {}\n'.format(np.mean(ACCs) * 100)) return np.mean(ACCs) * 100
else: featureLs = np.concatenate((featureLs, featureL), 0) if featureRs is None: featureRs = featureR else: featureRs = np.concatenate((featureRs, featureR), 0) result = { 'fl': featureLs, 'fr': featureRs, 'fold': folds, 'flag': flags } # save tmp_result scipy.io.savemat('./result/tmp_result.mat', result) accs = evaluation_10_fold('./result/tmp_result.mat') _print(' ave: {:.4f}'.format(np.mean(accs) * 100)) # save model if epoch % SAVE_FREQ == 0: msg = 'Saving checkpoint: {}'.format(epoch) _print(msg) if multi_gpus: net_state_dict = net.module.state_dict() else: net_state_dict = net.state_dict() if not os.path.exists(save_dir): os.mkdir(save_dir) torch.jit.save(torch.jit.script(net), os.path.join(save_dir, 'mobileface%03d.pt' % epoch)) torch.save({
res = [net(d).data.cpu().numpy() for d in data] featureL = np.concatenate((res[0], res[1]), 1) featureR = np.concatenate((res[2], res[3]), 1) if featureLs is None: featureLs = featureL else: featureLs = np.concatenate((featureLs, featureL), 0) if featureRs is None: featureRs = featureR else: featureRs = np.concatenate((featureRs, featureR), 0) result = {'fl': featureLs, 'fr': featureRs, 'fold': folds, 'flag': flags} # save tmp_result scipy.io.savemat('./result/tmp_result.mat', result) accs = evaluation_10_fold('./result/tmp_result.mat') _print(' ave: {:.4f}'.format(np.mean(accs) * 100)) # save model if epoch % SAVE_FREQ == 0: msg = 'Saving checkpoint: {}'.format(epoch) _print(msg) if multi_gpus: net_state_dict = net.module.state_dict() else: net_state_dict = net.state_dict() if not os.path.exists(save_dir): os.mkdir(save_dir) torch.save({ 'epoch': epoch, 'net_state_dict': net_state_dict},