MLU370用户指南 or MLU370-YOLOV5快速训练推理!!速度起飞

2023-11-09 23:50

本文主要是介绍MLU370用户指南 or MLU370-YOLOV5快速训练推理!!速度起飞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MLU370用户指南 or MLU370-YOLOV5快速训练推理!!速度起飞

  • 用户前言
    • 创建开发环境
    • 开发环境登录及测试开发环境
    • YOLOV5 修改适配370预训练模型推理(超简单)
    • QA集锦

用户前言

在本章我们将从获取算力卷创建自己的云平台账号开始,一步一步的带着大家从0到1完成,从创建云平台环境选择镜像,选择SDK版本,到SSH登录云平台环境,更改github原版yolov5 v5.0代码实现mlu370训练和推理,同时在最后总结出部分QA为各位开发者提供快速支持。

创建开发环境

开发环境的账号和密码可以通过公众号每期算力卷获得,也可以联系作者得到获取方式,现在开始我们的创建开发环境

  1. 南京智能运算开发平台 点击此链接即可进入网址,登录成功即为此页面
    在这里插入图片描述

  2. 点击右侧菜单栏开发环境-》创建开发环境

在这里插入图片描述

  1. 在这里我们优先推荐用最新版本的torch和sdk(2023.05.30截止,只支持torch1.9,python<=3.7)

第一个画框处 2*MLU370-D5.10.6是最新版
第二个画框出选择的是镜像 torch1.9的 mlu版本,ubuntu20.04,python==3.7的镜像环境
在这里插入图片描述
4.如下图,当旁边显示绿色运行中标识,即运行成功,这个时候我们点开名称如图4.2,画红框区域就是我们的ssh账号和密码,核对其他信息是否和自己所需求的一样,到这一步,我们的开发环境就已经全部创建完成了。
在这里插入图片描述
图4.1
在这里插入图片描述

图4.2

开发环境登录及测试开发环境

1.打开Xshell或者Vscode(remote-ssh) 本次只介绍Xshell使用方式
ssh 账号为自己的平台的ssh账号(图四红框处,去除ssh://),密码为图四画红框密码

2.登录成功后,显示界面如下

(pytorch) root@notebook-guojun-test-1sygy1u-notebook-0:~#

3.测试开发环境是否通过 ,如下图所示即为测试环境通过,接着可以愉快的编码了

(pytorch) root@notebook-guojun-test-1sygy1u-notebook-0:~# python
Python 3.7.8 (default, Dec  7 2022, 18:43:13) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> import torch_mlu
>>> import torchvision
>>> torch.__version__
'1.9.0'
>>> torch_mlu.__version__
'1.13.0-torch1.9'
>>> torchvision.__version__
'0.10.0a0+300a8a4'
>>> 

YOLOV5 修改适配370预训练模型推理(超简单)

前言:关于数据清洗如VOC转COCO得操作这边就不介绍了,我们主要介绍如何将gpu得代码在MLU上快速使用起来

  1. 前期准备工作
    yolov5原代码:https://github.com/ultralytics/yolov5/tree/v5.0
    数据集(安全帽数据集):链接:https://pan.baidu.com/s/1HlODiZWAWxzvkVIAh16kYQ 提取码:0tb2

  2. 代码转换
    提前声明:GPU的代码在MLU上运行,在一般情况下只需要修改一行加速引擎代码即可,在镜像中我们已经加入了这种转换脚本位于/torch/src/catch/tools/torch_gpu2mlu.py

(pytorch) root@notebook-guojun-test-1sygy1u-notebook-0:/torch/src/catch/tools# python torch_gpu2mlu.py --i /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0/
# Cambricon PyTorch Model Migration Report
Official PyTorch model scripts:  /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0
Cambricon PyTorch model scripts:  /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu
Migration Report:  /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu/report.md

python torch_gpu2mlu.py --i /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0/
运行该代码即可转换成功

(pytorch) root@notebook-guojun-test-1sygy1u-notebook-0:/workspace/volume/gpt/zhouguojun/MLU370-YOLOV5# ll
total 2
drwxrwxrwx. 1 root root 4096 May 30  2023 ./
drwxrwxrwx. 1 root root 4096 May 30 17:02 ../
drwxr-xr-x. 1 root root 4096 May 30  2023 yolov5-5.0/
drwxrwxrwx. 1 root root 4096 May 30  2023 yolov5-5.0_mlu/
  1. 使用MLU370进行推理
    在安装完一些缺失库之后,直接python detect.py
(pytorch) root@notebook-guojun-test-1sygy1u-notebook-0:/workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu# python detect.py 
Namespace(agnostic_nms=False, augment=False, classes=None, conf_thres=0.25, device='', exist_ok=False, img_size=640, iou_thres=0.45, name='exp', nosave=False, project='runs/detect', save_conf=False, save_txt=False, source='data/images', update=False, view_img=False, weights='yolov5s.pt')
requirements: /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu/requirements.txt not found, check failed.
YOLOv5 🚀 2023-5-30 torch 1.9.0 CUDA:0 (MLU370, 49152.0MB)CUDA:1 (MLU370, 49152.0MB)/torch/venv3/pytorch/lib/python3.7/site-packages/torch/_utils.py:110: UserWarning:  MLU operators don't support 64-bit calculation. so the 64 bit data will be forcibly converted to 32-bit for calculation.  (Triggered internally at  /torch/catch/torch_mlu/csrc/aten/util/tensor_util.cpp:153.)return new_type(self.size()).copy_(self, non_blocking)
Fusing layers... 
Model Summary: 224 layers, 7266973 parameters, 0 gradients
[2023-5-30 17:17:44] [CNNL] [Warning]:[cnnlSetNmsDescriptor_v2] is deprecated and will be removed in the future release, please use [cnnlSetNmsDescriptor_v5] instead.
[2023-5-30 17:17:44] [CNNL] [Warning]:[cnnlClip] is deprecated and will be removed in the future release, please use [cnnlClip_v2] instead.
image 1/2 /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu/data/images/bus.jpg: 640x480 4 persons, 1 bus, 1 fire hydrant, Done. (0.010s)
image 2/2 /workspace/volume/gpt/zhouguojun/MLU370-YOLOV5/yolov5-5.0_mlu/data/images/zidane.jpg: 384x640 2 persons, 2 ties, Done. (0.009s)
Results saved to runs/detect/exp
Done. (0.097s)

因为快速教程所以没有更改打的日志断点,可以看到MLU370 2卡识别正常出来且速度推理在0.009平均可以看出速度飞快
在这里插入图片描述
这是coco原来效果图
到这里yolov5推理就顺利结束啦~

QA集锦

很多同学在初次使用的时候,会有许多问题,这边集合总结问题快速回复供同学们参考

gpu移植到mlu需要改动哪些?
主要是修改设备相关的改动,或者使用寒武纪提供的脚本工具。可以参考下图总结:
在这里插入图片描述
使用torch_gpu2mlu.py这个脚本是不是就不用人工修改原生代码就可以移植到mlu了?
是的,理论上不需要人工修改了。
寒武纪SDK里转换工具是要对整个代码工程进行作用吗?还是只需要对训练入口文件?
对整个工程作用。
当前是否支持与GPU混插进行多卡异构训练?分别推理部署呢?
支持。
Pytorch 支持什么版本?
目前支持PyTorch 1.6和1.9版本。
MLU训练支持多机多卡吗?
支持,后续课程会讲到分布式训练。
请问使用MLU训练出来的模型的通用性怎么样?
通用性很好,和GPU训练出来的一样。
请问3系列加速卡支持哪些计算精度类型?
MLU370系列支持FP32、FP16、INT16、INT8等,具体规格点击官网查看:思元370系列 - 寒武纪 (cambricon.com)
需要配置一个定制的pytorch环境,python3.8-39.torch要求1.9
目前python只支持到3.7,torch支持1.6和1.9,具体可使用最新镜像pytorch:v1.13.0-torch1.9-ubuntu20.04-py37完成。

这篇关于MLU370用户指南 or MLU370-YOLOV5快速训练推理!!速度起飞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379180

相关文章

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

JavaScript错误处理避坑指南

《JavaScript错误处理避坑指南》JavaScript错误处理是编程过程中不可避免的部分,它涉及到识别、捕获和响应代码运行时可能出现的问题,本文将详细给大家介绍一下JavaScript错误处理的... 目录一、错误类型:三大“杀手”与应对策略1. 语法错误(SyntaxError)2. 运行时错误(R

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详