in contactopt/run_eval.py [0:0]
def run_eval(args):
in_file = 'data/optimized_{}.pkl'.format(args.split)
runs = pickle.load(open(in_file, 'rb'))
print('Loaded {} len {}'.format(in_file, len(runs)))
# if args.vis or args.physics:
# print('Shuffling!!!')
# random.shuffle(runs)
if args.partial > 0:
runs = runs[:args.partial]
do_parallel = not args.vis
if do_parallel:
all_data = Parallel(n_jobs=mp.cpu_count() - 2)(delayed(process_sample)(s, idx) for idx, s in enumerate(tqdm(runs)))
in_all = [item[0] for item in all_data]
out_all = [item[1] for item in all_data]
else:
all_data = [] # Do non-parallel
for idx, s in enumerate(tqdm(runs)):
all_data.append(process_sample(s, idx))
if args.vis:
print('In vs GT\n', pprint.pformat(all_data[-1][0]))
print('Out vs GT\n', pprint.pformat(all_data[-1][1]))
if args.split == 'im_pred_trans':
vis_sample(s['gt_ho'], s['in_ho'], s['out_ho'], mje_in=all_data[-1][0]['objalign_hand_joints'], mje_out=all_data[-1][1]['objalign_hand_joints'])
else:
vis_sample(s['gt_ho'], s['in_ho'], s['out_ho'], mje_in=all_data[-1][0]['unalign_hand_joints'], mje_out=all_data[-1][1]['unalign_hand_joints'])
in_all = [item[0] for item in all_data]
out_all = [item[1] for item in all_data]
mean_in = calc_mean_dicts(in_all, 'In vs GT')
mean_out = calc_mean_dicts(out_all, 'Out vs GT')
print('In vs GT\n', pprint.pformat(mean_in))
print('Out vs GT\n', pprint.pformat(mean_out))