Xiaodong's picture
upload
ab45969
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)