import torch # 指向你刚刚发给我的纯 LiDAR 官方权重 ckpt_path = 'pth/bevfusion_lidar_voxel0075_second_secfpn_8xb4-cyclic-20e_nus-3d-2628f933.pth' ckpt = torch.load(ckpt_path, map_location='cpu') state_dict = ckpt['state_dict'] fixed_count = 0 for key in list(state_dict.keys()): # 修复 3D 稀疏卷积维度 (16,3,3,3,16) -> (3,3,3,16,16) if 'pts_middle_encoder' in key and state_dict[key].dim() == 5: state_dict[key] = state_dict[key].permute(1, 2, 3, 4, 0).contiguous() fixed_count += 1 ckpt['state_dict'] = state_dict fixed_path = ckpt_path.replace('.pth', '_fixed.pth') torch.save(ckpt, fixed_path) print(f'✅ 纯 LiDAR 权重修复完成!已保存至 {fixed_path},共处理 {fixed_count} 个层。')