深度学习Docker使用, (Pytorch/TensorRT/DeepStream),标记上传制作自己的DockerHub

这篇具有很好参考价值的文章主要介绍了深度学习Docker使用, (Pytorch/TensorRT/DeepStream),标记上传制作自己的DockerHub。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 更新最新的Nvidia驱动

# 检查机器驱动建议
ubuntu-drivers devices

# 装12.0驱动
sudo apt install nvidia-driver-525

# 重启
sudo reboot
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.105.17   Driver Version: 525.105.17   CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            On   | 00000000:00:08.0 Off |                    0 |
| N/A   38C    P8     9W /  70W |      2MiB / 15360MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

2. Docker的安装官方版本

https://docs.docker.com/engine/install/ubuntu/

Set Up

# 删掉之前的docker
sudo apt-get remove docker docker-engine docker.io containerd runc

# Update the apt package index and install packages to allow apt to use a repository over HTTPS:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

# Add Docker’s official GPG key:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Use the following command to set up the repository:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Install Docker Engine

# Update the apt package index:
sudo apt-get update

# To install the latest version, run:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Verify that the Docker Engine installation is successful by running the hello-world image.
sudo docker run hello-world

安装nvidia cuda tookit

# 安装nvidia tookit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# 安装完toolkit要重启
sudo systemctl restart docker

4. 把docker加入User Group(选做)

 sudo usermod -aG docker $USER

加入了之后重启了才能使用

sudo reboot

5. 查看docker 挂载路径的目录

docker info | grep 'Docker Root Dir'

Docker Root Dir: /data/docker
我的docker数据的挂载就是在/data/docker下面的

6. 更改挂载的目录(选做)

# 查看路径
docker info | grep 'Docker Root Dir'
# 更改文件
sudo mkdir /data/docker
sudo vim /etc/docker/daemon.json


# 添加
{
    "data-root": "/data/docker"
}

# 重启docker
sudo systemctl restart docker

7. 拉取Pytorch训练的镜像

https://catalog.ngc.nvidia.com/containers

全部镜像都是在NVIDIA官方找的

docker run --gpus all -it --name env_pyt_1.12 -v $(pwd):/app nvcr.io/nvidia/pytorch:22.03-py3 

8. 拉取TensorRT的镜像

docker run --gpus all -it --name env_trt -v $(pwd):/app nvcr.io/nvidia/tensorrt:22.08-py3

9. 拉取DeepStream的镜像

docker run --gpus all -v `pwd`:/app -p 8556:8554  --name deepstream_env -it nvcr.io/nvidia/deepstream:6.1.1-devel bash

10. 打包镜像上传到DockerHub

登陆自己的账号

docker login --username easonbob

标记自己的镜像

docker tag nvcr.io/nvidia/pytorch:22.03-py3 easonbob/my_torch1-pytorch:22.03-py3

docker tag nvcr.io/nvidia/tensorrt:22.08-py3 easonbob/my_trt-tensorrt:22.08-py3

在这里面22.03和22.08分别是Nvidia容器对于镜像的标签, 在后面自己的仓库中沿用了这个标签,也告诉自己这个就是跟官方一样的容器,一个仓库中可以有很多个镜像,这些镜像用标签来做区分。

推送自己的镜像

docker push easonbob/my_torch1-pytorch:22.03-py3
docker push easonbob/my_trt-tensorrt:22.08-py3

11. 拉取并且运行自己的镜像

拉取自己的pytorch镜像

docker run --gpus all -it --name my_torch -v $(pwd):/app easonbob/my_torch1-pytorch:22.03-py3

拉取自己的TensorRT镜像

docker run --gpus all -it --name my_trt -v $(pwd):/app easonbob/my_trt-tensorrt:22.08-py3

12. pytorch镜像的使用方法(yolov5为例子)

找到conda在哪里

root@46f879adf741:/app/yolo_train/yolov5# whereis conda
conda: /opt/conda/bin/conda

使用conda init

/opt/conda/bin/conda init

克隆yolov5并且安装依赖项

# 克隆地址
git clone https://github.com/ultralytics/yolov5.git
# 进入目录
cd yolov5 
# 选择分支,这里使用了特定版本的yolov5,主要是避免出现兼容问题
git checkout a80dd66efe0bc7fe3772f259260d5b7278aab42f

# 安装依赖(如果是docker环境,要进入容器环境后再安装)
pip3 install -r requirements.txt  

有的时候opencv怎么装都会出问题,这个时候使用特定版本

pip3 install "opencv-python-headless<4.3"

测试yolov5

python detect.py --source ./data/images/ --weights weights/yolov5s.pt --conf-thres 0.4

13. 更改自己的镜像(以yolov5为例子)

  1. 提交容器更改:首先,您需要使用 docker commit 命令将更改后的容器提交为新的镜像。将 container-id 替换为您要提交的容器 ID,将 new-image-name 替换为新的镜像名称。

  2. 标记新的镜像:使用 docker tag 命令为新的镜像添加标签,以便将其推送到 Docker Hub。将 new-image-name 替换为您在上一步中使用的名称,将 your-username 和 your-repo-name 替换为您的 Docker Hub 用户名和仓库名称。

  3. 推送新的镜像:使用 docker push 命令将新的镜像推送到 Docker Hub。这将覆盖之前的镜像。

实操

# 提交容器更改
docker commit 46f879adf741 torch_yolov5

# 标记新的容器
docker tag torch_yolov5 easonbob/my_torch1-pytorch:22.03-py3-yolov5-6.0

# 推送新的容器
docker push easonbob/my_torch1-pytorch:22.03-py3-yolov5-6.0

使用推送上去的新的镜像

docker run --gpus all -it --name my_yolo -v $(pwd):/app easonbob/my_torch1-pytorch:22.03-py3-yolov5-6.0

测试这个镜像是否能用

python detect.py --source ./data/images/ --weights weights/yolov5s.pt --conf-thres 0.4

跑出结果了就说明我们使用的确实是自己之前安装了requirment.txt和headless版本opencv的镜像

14. 最新操作

# deepstream
docker run --gpus all -v $(pwd):/app -p 8556:8554 --name my_deepstream_env -it easonbob/my-deepstream6.1:01 bash

# pytorch
docker run --gpus all -it --name my_torch1-pytorch_env -v $(pwd):/app easonbob/my_torch1-pytorch:yolov5-6.0-onnx


# tensorrt
docker run --gpus all -it --name my_trt_tensorrt_env -v $(pwd):/app easonbob/my_trt-tensorrt:01

15. wsl2的深坑

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/user-guide.html

从这个网址做,执行完步骤就可以了,后面的example都不用整理

注意的点是

sudo dockerd --add-runtime=nvidia=/usr/bin/nvidia-container-runtime [...] 

后面的… 不用复制

sudo dockerd --add-runtime=nvidia=/usr/bin/nvidia-container-runtime

16. 如果已经有很多东西了怎么更改挂载路径

首先data-root要跟runtimes同级别

{
    "data-root": "/data/docker",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "args": []
        }
    }
}

这样配置后,请按照以下步骤操作:

  1. 确保 /data/docker 这个目录确实存在,如果不存在,请先创建。
  2. 停止 Docker 服务:
sudo systemctl stop docker
  1. 移动当前的 Docker 数据到新的目录(如果您希望保留当前的容器和镜像数据):
sudo mv /var/lib/docker/* /data/docker/
  1. 重新启动 Docker 服务:
sudo systemctl start docker

然后,您应该可以看到 Docker 正确地使用新的存储目录 /data/docker

docker info | grep 'Docker Root Dir'

注意:在操作过程中,最好备份您的数据,以防万一出现意外情况。文章来源地址https://www.toymoban.com/news/detail-644220.html

到了这里,关于深度学习Docker使用, (Pytorch/TensorRT/DeepStream),标记上传制作自己的DockerHub的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习】SDXL tensorRT 推理,Stable Diffusion 转onnx,转TensorRT

    juggernautXL_version6Rundiffusion.safetensors文件是pth pytroch文件,需要先转为diffusers 的文件结构。 FP16在后面不好操作,所以最好先是FP32: 有了diffusers 的文件结构,就可以转onnx文件。 项目:https://huggingface.co/docs/diffusers/optimization/onnx stabilityai/stable-diffusion-xl-1.0-tensorrt 项目:https://hug

    2024年01月19日
    浏览(55)
  • 深度学习 pytorch的使用(张量2)

    tensor([[7, 6, 9, 4, 6],         [1, 9, 0, 9, 2],         [5, 7, 1, 7, 4],         [1, 2, 7, 2, 1]]) tensor([7, 6, 9, 4, 6]) tensor([7, 1, 5, 1]) tensor([6, 0]) tensor([[7, 6],         [1, 9],         [5, 7]]) tensor([[5, 7],         [1, 2]]) tensor([[7, 6, 9, 4, 6],         [1, 2, 7, 2, 1]]) tensor([[6, 4],         [9, 9],  

    2024年01月23日
    浏览(54)
  • 深度学习 pytorch的使用(张量1)

     tensor(10) tensor([[-1.0923, -0.0842,  1.5959],         [ 0.4562,  1.0242,  0.0691]], dtype=torch.float64) tensor([[10., 20., 30.],         [40., 50., 60.]]) --------------------------------------------------  tensor([[-1.4189e-09,  1.7614e-42,  0.0000e+00],         [ 0.0000e+00,  0.0000e+00,  0.0000e+00]]) tensor([10.]) tensor([10., 20

    2024年01月22日
    浏览(40)
  • 【边缘端环境配置】英伟达Jetson系列安装pytorch/tensorflow/ml/tensorrt环境(docker一键拉取)

    Jetson系列板卡是算法边缘端部署无法避开的一道坎,作为英伟达旗下产品,可以使用tensorrt加速,因此用户较多,生态较好;但是由于是ARM架构,因此无法使用x86部署方式,用过的都有一堆血泪史可以诉说,以下是英伟达官方介绍: NVIDIA® Jetson™ 是适用于自主机器和其他嵌入

    2023年04月22日
    浏览(53)
  • PyTorch深度学习实战(3)——使用PyTorch构建神经网络

    我们已经学习了如何从零开始构建神经网络,神经网络通常包括输入层、隐藏层、输出层、激活函数、损失函数和学习率等基本组件。在本节中,我们将学习如何在简单数据集上使用 PyTorch 构建神经网络,利用张量对象操作和梯度值计算更新网络权重。 1.1 使用 PyTorch 构建神

    2024年02月08日
    浏览(47)
  • 深度学习模型部署综述(ONNX/NCNN/OpenVINO/TensorRT)

    点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号 ADAS巨卷干货,即可获取 今天自动驾驶之心很荣幸邀请到 逻辑牛 分享深度学习部署的入门介绍,带大家盘一盘ONNX、NCNN、OpenVINO等框架的使用场景、框架特点及代码示例。如果您有相关工作需要分享,请在文末联系我们! 点击

    2024年02月08日
    浏览(48)
  • 【深度学习:数据增强 】提高标记数据质量的 5 种方法

    计算机视觉模型的复杂性、准确性、速度和计算能力每天都在进步。机器学习团队正在训练计算机视觉模型以更有效地解决问题,这使得标记数据的质量比以往任何时候都更加重要。 质量差的标记数据,或者基于图像或视频的数据集中的错误和错误可能会给机器学习团队带来

    2024年01月24日
    浏览(42)
  • 【Python】使用Anaconda创建PyTorch深度学习虚拟环境

    使用Anaconda Prompt 查看环境: 创建虚拟环境(python3.10): 激活创建的环境: 在虚拟环境内安装PyTorch: 【Python】CUDA11.7/11.8安装PyTorch三件套_cuda 11.6对应pytorch-CSDN博客 文章浏览阅读3.3w次,点赞29次,收藏169次。安装PyTorch_cuda 11.6对应pytorch https://blog.csdn.net/ericdiii/article/details/125

    2024年01月22日
    浏览(63)
  • 深度学习模型部署(六)TensorRT工作流and入门demo

    官方给出的步骤: 总结下来可以分为两大部分: 模型生成:将onnx经过一系列优化,生成tensorrt的engine模型 选择batchsize,选择精度precision,模型转换 模型推理:使用python或者C++进行推理 生成trt模型: 然后就坐等输出模型,我们可以根据log信息看一下tensorRT都干了什么: 得到

    2024年03月13日
    浏览(51)
  • 使用PyTorch解决多分类问题:构建、训练和评估深度学习模型

    💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢迎在文章下方留下你的评论和反馈。我期待着与你分享知识、互

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包