适用于openvino 2020.2的yolov5的docker制作

docker版本:20.0

系统环境:ubuntu16.04

目标openvino版本:2020.2

这里主要提供yolov5的docker制作过程,在该docker中,训练得到的.pt模型将适用于openvino2020.2。

制作完成的docker页面:Docker Hub

sudo apt-get install nvidia-container-runtime

sudo systemctl restart docker

sudo docker run -it --shm-size='10g' --gpus all -u 0 -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all --name openvino2020.2_yolov5.v4.0 cishengbo/openvino2020.2_yolov5.v4.0:2021.9 /bin/bash

1、安装docker环境,让docker容器能够调用gpu

sudo apt-get install nvidia-container-runtime
sudo systemctl restart docker

如果上述命令报错,nvidia-container-runtime安装失败或者apt找不到,那么尝试如下命令:

参考博客《ubuntu18.04 部署GPU环境 docker启动完整步骤》,依次执行如下命令

# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# 安装docker toolkit
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit

sudo systemctl restart docker

2、拉取openvino2020.2的镜像,并制作名为openvino2020.2_yolov5.v4.0的容器,对该容器分配10G的内存,设置能够使用gpu,方便后期训练

sudo docker run -it --shm-size='10g' --gpus all -u 0  -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all --name openvino2020.2_yolov5.v4.0  openvino/ubuntu18_dev:2020.2  /bin/bash

3、安装sudo和vim

apt-get update
apt-get install vim 
apt-get install sudo 

4、下载linux的miniconda3:Miniconda — Conda documentation,并将其安装在容器中。注意,安装完之后更新一下~/.bashrc,如下

source ~/.bashrc

5、安装好之后就进入容器的base环境,我们分别执行以下命令,创建yolov5环境。

conda create -n yolov5 python=3.7 -y
conda activate yolov5

6、安装pytorch,因为我的服务器上cuda版本较低,因此安装cuda 9.2版本的pytorch1.7。

conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=9.2 -c pytorch -y

如果安装较慢,请自行百度pytorch安装慢。

7、下载yolov5 v4.0,放进/home中。

yolov5 v4.0下载地址:https://github.com/ultralytics/yolov5/releases/tag/v4.0

这里,将yolov5-4.0分别复制为yolov5_train_pt和yolov5_convert_onnx。我们用yolov5_train_pt训练数据,生成.pt模型。然后在yolov5_convert_onnx中,用资源中的models和utils文件夹分别代替对应的文件夹。

资源在审核中,如果需要,可以发我邮件[email protected]

8、安装依赖

conda install pyyaml -y
pip install tensorboard -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install editdistance -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install  nibabel -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install py-cpuinfo==4.0 -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
conda install scikit-learn -y
pip install tqdm -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install opencv-python -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
apt-get install libgl1-mesa-glx
pip install matplotlib -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
conda install pandas -y
conda install seaborn -y

9、将训练数据传入yolov5_train_pt中,并修改相应的data文件夹和models文件夹中的内容,执行训练命令

python /home/yolov5_train_pt/train.py --weights '' --cfg /home/yolov5_train_pt/models/jiansuqi.yaml --data /home/yolov5_train_pt/data/jiansuqi.yaml --epochs 50 

将生成的last.pt放进/home/yolov5_convert_onnx/weights/中。

10、逐条安装依赖

pip install dataclasses -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install future -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install  sentencepiece -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install shapely -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install yamlloader -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install onnx -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install coremltools -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install networkx -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install defusedxml -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple

11、在/home/yolov5_convert_onnx文件夹中,将weights/last.pt转化为weights/last.onnx。

python /home/yolov5_convert_onnx/models/export.py --weights /home/yolov5_convert_onnx/weights/last.pt --img 640 --batch 1 --opset-version 10

13、将onnx文件转成ir文件

python /opt/intel/openvino_2020.2.120/deployment_tools/model_optimizer/mo.py --input_model /home/yolov5_convert_onnx/weights/last.onnx --output_dir /home/yolov5_convert_onnx/weights --input_shape [1,3,640,640] --data_type FP16

在/home/yolov5_convert_onnx/weights中,生成有需要的last.xml和last.bin。

你可能感兴趣的:(docker,深度学习,神经网络)