import json import numpy as np def denormalize_func(normalized_tensor, min_val=0, max_val=200): tensor = (normalized_tensor + 1) / 2 tensor = tensor * (max_val - min_val) + min_val # tensor = t.round(tensor).long() return tensor # 读取JSON文件 with open('action_val.json', 'r') as file: data = json.load(file) # 初始化误差列表 steering_errors = [] speed_errors = [] # 遍历每个场景,计算L1误差 for scene_data in data: action_pred = scene_data["action_pred"] action_gt = scene_data["action_gt"] # 确保 action_pred 和 action_gt 的长度一致 min_length = min(len(action_pred), len(action_gt)) # 计算每个时间步的转向角和速度误差 for i in range(min_length): pred_steering, pred_speed = action_pred[i] gt_steering, gt_speed = action_gt[i] # pred_steering = denormalize_func(pred_steering, -500, 500) # gt_steering = denormalize_func(gt_steering, -500, 500) # pred_speed = denormalize_func(pred_speed, 0, 70) # gt_speed = denormalize_func(gt_speed, 0, 70) # 计算转向角和速度的绝对误差 steering_error = abs(pred_steering - gt_steering) speed_error = abs(pred_speed - gt_speed) steering_errors.append(steering_error) speed_errors.append(speed_error) # 计算转向角和速度的平均L1误差 mean_steering_error = np.mean(steering_errors) mean_speed_error = np.mean(speed_errors) print("平均转向角L1误差:", mean_steering_error) print("平均速度L1误差:", mean_speed_error)