MCPcopy Create free account
hub / github.com/MotrixLab/MotionDiffuse / evaluate_multimodality

Function evaluate_multimodality

text2motion/tools/evaluation.py:124–143  ·  view source on GitHub ↗
(mm_motion_loaders, file)

Source from the content-addressed store, hash-verified

122
123
124def evaluate_multimodality(mm_motion_loaders, file):
125 eval_dict = OrderedDict({})
126 print('========== Evaluating MultiModality ==========')
127 for model_name, mm_motion_loader in mm_motion_loaders.items():
128 mm_motion_embeddings = []
129 with torch.no_grad():
130 for idx, batch in enumerate(mm_motion_loader):
131 # (1, mm_replications, dim_pos)
132 motions, m_lens = batch
133 motion_embedings = eval_wrapper.get_motion_embeddings(motions[0], m_lens[0])
134 mm_motion_embeddings.append(motion_embedings.unsqueeze(0))
135 if len(mm_motion_embeddings) == 0:
136 multimodality = 0
137 else:
138 mm_motion_embeddings = torch.cat(mm_motion_embeddings, dim=0).cpu().numpy()
139 multimodality = calculate_multimodality(mm_motion_embeddings, mm_num_times)
140 print(f'---> [{model_name}] Multimodality: {multimodality:.4f}')
141 print(f'---> [{model_name}] Multimodality: {multimodality:.4f}', file=file, flush=True)
142 eval_dict[model_name] = multimodality
143 return eval_dict
144
145
146def get_metric_statistics(values):

Callers 1

evaluationFunction · 0.85

Calls 2

calculate_multimodalityFunction · 0.85
get_motion_embeddingsMethod · 0.80

Tested by

no test coverage detected