简介

Horizon-Torch-Samples是基于Pytorch和Pytorch plugin的接口开发的算法工具,旨在为地平线BPU提供高效且用户友好的算法工具包。

Horizon-Torch-Samples所依赖的PyTorch是一个针对深度学习,并且使用GPU和CPU来优化的tensor library (张量库),是目前最受欢迎的深度学习框架之一。而Pytorch plugin是基于Pytorch开发的一套量化算法工具,专注于与计算平台相贴近的量化功能实现,其量化算法与地平线计算平台深度耦合,利用该工具训练得到的量化模型均可以正常编译和运行在地平线BPU(BERNOULLI/BAYES/NASH)上。

Horizon-Torch-Samples作为地平线开发的算法包基础框架,面向所有的算法用户开发和研究的用户,其量化训练与地平线计算平台紧密相关,包含了 浮点训练 --> QAT 训练 --> 定点转化预测 --> 模型检查编译(针对地平线 BPU) --> 上板精度仿真验证 的整套流程。同时它还可以提供包含分类,检测,分割等常见的图像任务的SOTA(state-of-the-art)深度学习模型。

特性

  • 基于Pytorch和horizon_plugin_pytorch。
  • 包含从 浮点训练上板精度仿真验证 的整套流程。
  • 包含分类、检测、分割等常见图像任务的SOTA模型,且所有示例都与地平线BPU兼容。

示例模型

Horizon-Torch-Samples目前已包含以下深度学习模型。

模型类别模型名称
分类模型
  • mobilenetv1_imagenet
  • mobilenetv2_imagenet
  • resnet18_imagenet
  • resnet50_imagenet
  • vargnetv2_imagenet
  • efficientnet_imagenet
  • horizon_swin_transformer_imagenet
  • mixvargenet_imagenet
  • efficientnasnetm_imagenet
  • efficientnasnets_imagenet
  • vit_small_imagenet
  • henet_tinye_imagenet
  • henet_tinym_imagenet
检测模型
  • fcos_efficientnetb0_mscoco
  • fcos_efficientnetb1_mscoco
  • fcos_efficientnetb2_mscoco
  • fcos_efficientnetb3_mscoco
  • detr_resnet50_mscoco
  • detr_efficientnetb3_mscoco
  • deform_detr_resnet50_mscoco
  • fcos3d_efficientnetb0_nuscenes
  • pointpillars_kitti_car
  • centerpoint_pointpillar_nuscenes
分割模型
  • deeplabv3plus_efficientnetm0_cityscapes
  • deeplabv3plus_efficientnetm1_cityscapes
  • deeplabv3plus_efficientnetm2_cityscapes
  • fastscnn_efficientnetb0tiny_cityscapes
  • unet_mobilenetv1_cityscapes
车道线检测模型
  • ganet_mixvargenet_culane
多目标跟踪模型
  • motr_efficientnetb3_mot17
双目深度估计模型
  • stereonetplus_mixvargenet_sceneflow
Bev多任务模型
  • bev_ipm_efficientnetb0_multitask_nuscenes
  • bev_lss_efficientnetb0_multitask_nuscenes
  • bev_gkt_mixvargenet_multitask_nuscenes
  • bev_ipm_4d_efficientnetb0_multitask_nuscenes
  • detr3d_efficientnetb3_nuscenes
  • petr_efficientnetb3_nuscenes
  • bevformer_tiny_resnet50_detection_nuscenes
  • bev_cft_efficientnetb3_nuscenes
  • bev_sparse_henet_tinym_nuscenes
关键点检测模型
  • keypoint_efficientnetb0_carfusion
Lidar多任务模型
  • centerpoint_mixvargnet_multitask_nuscenes
轨迹预测模型
  • densetnt_vectornet_argoverse1
  • qcnet_oe_argoverse2
Occupancy预测模型
  • flashocc_henet_lss_occ3d_nuscenes
在线建图模型
  • maptroe_henet_tinym_bevformer_nuscenes
  • maptroe_sparse_henet_tinym_nuscenes
Lidar融合bev多任务模型
  • bevfusion_pointpillar_henet_multisensor_multitask_nuscenes
  • bev_sparse_lidar_fusion_henet_tinym_nuscenes

以上模型中,resnet18_imagenetresnet50_imagenetvargnetv2_imagenetefficientnasnetm_imagenetefficientnasnets_imagenetefficientnet_imagenetmixvargenet_imagenetvargnetv2_imagenetganet_mixvargenet_culanedeeplabv3plus_efficientnetm0_cityscapesdeeplabv3plus_efficientnetm1_cityscapesdeeplabv3plus_efficientnetm2_cityscapesfastscnn_efficientnetb0tiny_cityscapesbev_gkt_mixvargenet_multitask_nuscenesbev_ipm_efficientnetb0_multitask_nuscenesbev_lss_efficientnetb0_multitask_nuscenesflashocc_henet_lss_occ3d_nuscenesdetr3d_efficientnetb3_nusceneskeypoint_efficientnetb0_carfusion 只需要做calibration量化精度就能达到目标,详细精度参考model_zoo