file-type

华为发布FP16精度的ATC_Yolov5模型,支持PyTorch框架

版权申诉
5星 · 超过95%的资源 | 51.06MB | 更新于2025-05-14 | 44 浏览量 | 6 下载量 举报 收藏
download 限时特惠:#22.90
标题中的“ATC_Yolov5_from_Pytorch_Ascend310.zip”暗示了一个关于深度学习模型转换工具ATC(Ascend Tensor Compiler)处理由PyTorch框架定义的Yolov5模型,并针对Ascend 310处理器进行优化的文件包。Ascend 310是华为推出的一款面向边缘计算和AI场景的处理器,而Yolov5是一个在实时物体检测领域中广泛使用且性能卓越的深度学习模型。 描述部分详细介绍了YOLO(You Only Look Once)系列模型的概念及其在物体检测上的应用。YOLO算法将物体检测问题定义为回归问题,即通过对输入图像进行单次前向传播,预测出图像中物体的位置(边界框坐标),以及物体的类别和置信度。描述中还提及,这个特定的Yolov5模型是基于Ultralytics的开源研究,并结合了该公司在使用自定义数据集上训练数千个模型的经验。这表明了模型可能包含了最新的技术改进和优化实践。 具体到“ATC YoloV5 (FP16)”,这里面指出了几个关键的技术点。首先,“FP16”指的是使用半精度浮点数(16位浮点数)来存储模型的权重和激活值,这在训练和部署深度学习模型时可以减少内存使用,加快计算速度,并降低功耗。其次,发布者为华为,说明该模型或工具与华为有直接关系,可能是华为内部开发或经其验证和推广。应用领域是“Object Detection”,即物体检测,这是计算机视觉中的一个核心任务。 模型格式为“onnx, om”,这表示模型可以使用ONNX(Open Neural Network Exchange)格式导出,以及华为自有的“om”格式,它们是跨平台模型交换格式,能够方便模型在不同的深度学习框架和硬件平台之间迁移。ONNX是深度学习模型的开放标准,而“om”格式可能是华为为了更好地适配其产品和芯片而设计的模型格式。 版本为“1.2”,表明这是Yolov5模型的一个较新的版本,并且它包含了特定版本的PyTorch框架(1.5.0)。大小为“28.5MB, 16.1MB”,指的可能是不同优化级别或精度下的模型文件大小。处理器为Ascend 310,意味着这个模型特别针对这款处理器进行了优化,以期达到最佳性能。 标签“pytorch 网络 回归 python 人工智能”则指向了Yolov5模型开发过程中使用的核心技术和概念。PyTorch是一个广泛使用的开源机器学习库,专为Python语言设计,它在深度学习社区非常流行。标签中的“网络”和“回归”反映了Yolov5在深度学习网络设计和回归分析上的应用,而“python”和“人工智能”则标示了该模型开发语言和应用领域。 综合来看,这个文件包可能包含了一系列文件和脚本,用于将基于PyTorch定义的Yolov5模型转换为Ascend 310处理器可以识别和优化的格式,且该模型是以FP16精度来减少资源消耗的,使得深度学习模型在边缘设备上的实时物体检测成为可能。这种优化工作常常是在追求更快速度、更小尺寸和更低功耗的同时,确保模型在特定硬件上的性能与效率。

相关推荐

filetype

wwp@407:~/SVP_PC/SVP_NNN_PC_V5.0.0.15/Sample/samples/2_object_detection/yolo/out$ ./func_main 5 [INFO] ./main param param is model and input image bin pair(default 1) [INFO] param 5: yolov5.om and dog_bike_car_yolov5.bin [INFO] param 5_cpu: yolov5_cpu.om and dog_bike_car_yolov5.bin [INFO] param 7: yolov7.om and dog_bike_car_yolov7.bin [INFO] param 8: yolov8.om and dog_bike_car_yolov8.bin [INFO] param x: yolox.om and dog_bike_car_yolovx.bin [INFO] param 5_new_rpn: yolov5_new_rpn.om and dog_bike_car_yolov5.bin [INFO] param 7_new_rpn: yolov7_new_rpn.om and dog_bike_car_yolov7.bin [INFO] param 8_new_rpn: yolov8_new_rpn.om and dog_bike_car_yolov8.bin [INFO] yolo v5 [WARN] configJson don't contain dump or profiler or pb reuse! [INFO] start svp_acl_init [WARN] configJson don't contain dump or profiler or pb reuse! [INFO] acl init success [INFO] open device 0 success [INFO] set op wait time success [INFO] create context success [INFO] create stream success [INFO] get run mode success [INFO] start svp_acl_mdl_load_from_mem [ERROR] net.cpp CreateGraphs 425 model version is not v200! [ERROR] model_manager.cpp InitModelInfo 211 CreateGraphs failed! [ERROR] model_manager.cpp AddNetDefToModelMap 276 InitModelInfo failed! [ERROR] model_manager.cpp LoadModel 305 AddNetDefToModelMap err [ERROR] acl_sim.cpp LoadModel 1149 LoadModelFromMem fail [ERROR] load model from file failed, model file is ../model/yolov5_original.om [ERROR] execute LoadModelFromFileWithMem failed [WARN] no model had been loaded, unload failed [ERROR] sample process failed [INFO] end to destroy stream [INFO] end to destroy context [INFO] end to reset device is 0 [INFO] end to finalize acl

filetype

#if((ROX_SELECT_Seat == SCML_HIGH) || (ROX_SELECT_Seat == SCML_LOW) || (ROX_SELECT_Seat == SCML_LOW_MEMA)) #define big_CAN_IBCM_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit12)/*-0x143-*/ #define big_CAN_SCMR_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit17)/*-0x1D5-*/ #if(ROX_SELECT_Seat == SCML_HIGH) #define big_CAN_ASCMRL_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit14)/*-0x1D9-*/ #endif #define big_CAN_ACU_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit13)/*-0xCE-*/ #define big_CAN_ESC_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit2) /*-0x83-*/ #define big_CAN_IB_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit11)/*-0xA3-*/ #define big_CAN_MDCU_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit15)/*-0x91-*/ #define big_CAN_TBOX_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit7) /*-0x2A3-*/ #define big_CAN_ATC_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit20)/*-0x297-*/ #elif((ROX_SELECT_Seat == SCMR_HIGH) || (ROX_SELECT_Seat == SCMR_LOW) ||(ROX_SELECT_Seat == SCMR_LOW_MEMA)) #define big_CAN_IBCM_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit0) /*-0x147-*/ #if(ROX_SELECT_Seat == SCMR_HIGH) #define big_CAN_ASCMRR_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit14)/*-0x1DB-*/ #endif #define big_CAN_ACU_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit13)/*-0xCE-*/ #define big_CAN_ESC_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit2) /*-0x83-*/ #define big_CAN_IDCU_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit8) /*-0x22A-*/ #define big_CAN_TBOX_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit7) /*-0x2A3-*/ #define big_CAN_ATC_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit20)/*-0x297-*/ #elif(ROX_SELECT_Seat == SCMTR_LOW) #define big_CAN_IBCM_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit0) /*-0x147-*/ #define big_CAN_ESC_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit2) /*-0x83-*/ #define big_CAN_IDCU_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit6) /*-0x230-*/ #define big_CAN_TBOX_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit7) /*-0x2A3-*/ #define big_CAN_CCU_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit10)/*-0x14C-*/ #elif(ROX_SELECT_Seat == ASCMRL) #define big_CAN_IBCM_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit0) /*-0x147-*/ #define big_CAN_SCML_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit16)/*-0x1D1-*/ #define big_CAN_SCMR_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit17)/*-0x1D5-*/ #define big_CAN_ACU_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit13)/*-0xCE-*/ #define big_CAN_ESC_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit2) /*-0x83-*/ #define big_CAN_IDCU_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit4) /*-0x22B-*/ #define big_CAN_TBOX_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit7) /*-0x2A3-*/ #elif(ROX_SELECT_Seat == ASCMRR) #define big_CAN_IBCM_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit0) /*-0x147-*/ #define big_CAN_SCML_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit16)/*-0x1D1-*/ #define big_CAN_SCMR_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit17)/*-0x1D5-*/ #define big_CAN_ACU_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit13)/*-0xCE-*/ #define big_CAN_ESC_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit2) /*-0x83-*/ #define big_CAN_IDCU_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit8) /*-0x22A-*/ #define big_CAN_TBOX_Lostflag (u64g_CAN_FrameFlag.un_CanLostFlag.Bit_vaule.bit7) /*-0x2A3-*/ #endif这些定义的我会在一个全局定义的函数中使用,但我的宏ROX_SELECT_Seat == SCML_LOW时,全局定义的函数会报big_CAN_IDCU_Lostflag 未定义的error,有什么好办法在不用宏框住函数的情况下,使编译不报错

牛马尼格
  • 粉丝: 1399
上传资源 快速赚钱