5分钟搭建强大又好用的深度学习环境

简介: 5分钟搭建强大又好用的深度学习环境

为深度学习项目建立一个良好的环境不是一件容易的任务。因为需要处理的事情太多了:库必须匹配特定的版本,整个环境需要可以复制到其他机器上,所有东西都需要能够机器中的所有驱动程序通信。这意味着你需要为你的NVIDIA GPU安装特定的驱动程序,并且CUDA库必须与你的驱动程序和你想要使用的框架兼容。

随着容器彻底改变了软件开发的世界,现在它们也可以帮助数据科学家构建更健壮的环境。

有一件事是肯定的:数据科学可以从软件开发领域学到一些东西。

NVIDIA NGC是一个软件中心,提供gpu优化框架、预训练模型和工具包来培训和部署生产中的AI。它是一个容器注册中心,包含训练模型所需的所有工具:无论您使用的是caffee2、Pytorch、Tensorflow、Keras、Julia还是其他工具都没有关系。

在NGC目录中有大量可生产的容器,你只需要选择你自己想用的。

Nvidia NGC不仅是一个容器注册中心,它还内置了许多功能,可以帮助您的组织将模型带到生产环境中。

从头开始

让我们从一台配备了GPU的Linux机器开始(GPU不是强制性的,但如果你想训练模型,强烈建议使用GPU)。我在Ubuntu 20.04 LTS和18.04 LTS上测试了这个功能,但是可以很容易地适应其他Linux发行版。

我们需要做什么?

步骤很简单,我们只需要安装NVIDIA驱动程序和Docker。然后我们下载我们想要的docker镜像并开始工作!

第一步:在Ubuntu 20.04上安装NVIDIA驱动程序

注意:如果你使用的是另一个Ubuntu版本,请确保你修改了相应的脚本。此外,如果启用了Secure Boot,这种方法也不起作用。

sudoaptinstalllinux-headers-$(uname-r)
curl-Ohttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pinsudomvcuda-ubuntu2004.pin/etc/apt/preferences.d/cuda-repository-pin-600sudoapt-keyadv -fetch-keyshttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pubsudoadd-apt-repository"deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"sudoaptupdatesudoapt-yinstallcuda

使用nvidia-smi命令验证安装。你应该看到这样的东西。

640.png

第二步:在Ubuntu 20.04中安装Docker

#!/bin/sh#Setuptherepositorysudoapt-getupdatesudoapt-getinstall-y\apt-transport-https\ca-certificates\curl\gnupg-agent\software-properties-common#AddDocker’sofficialGPGkey:
curl-fsSLhttps://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -#setupthestablerepositorysudoadd-apt-repository\"deb [arch=amd64] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) \stable"sudoapt-getupdatesudoapt-getinstall-ydocker-cedocker-ce-clicontainerd.io#Substituteubuntuwithyourusernamesudousermod-aGdockerubuntu

注意:你需要注销和登录,以在没有sudo权限的情况下使用docker命令。

第三步:让Docker与NVIDIA driver通信

curl-s-Lhttps://nvidia.github.io/nvidia-docker/gpgkey | \sudoapt-keyadd-curl-s-Lhttps://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | \sudotee/etc/apt/sources.list.d/nvidia-docker.listsudoaptupdatesudoapt-getinstall-ydockernvidia-container-toolkit

我们现在想测试Docker是否能够与NVIDIA驱动程序通信。要做到这一点,只需运行以下命令,您应该会看到与步骤1类似的结果。

sudodockerrun--rm--gpusallnvidia/cuda:11.0-basenvidia-smi

注意:我在不同的云主机提供商上试验过,根据操作系统、虚拟机类型和gpu,此时可能需要重启。因此,如果出现错误,请尝试sudo reboot并再次执行上述命令。正常的话应该看到nvidia-smi结果。

第四步:让我们获取镜像并运行它!

#DownloadNGCTensorflow2Imagedockerpullnvcr.io/nvidia/tensorflow:20.12-tf2-py3#createlocal_dirfoldermountedat/container_dirinthecontainermkdir/home/ubuntu/local_dirdockerrun--gpusall--shm-size=1g--ulimitmemlock=-1--ulimitstack=67108864-it--rm-v/home/ubuntu/local_dir:/container_dirnvcr.io/nvidia/tensorflow:20.10-tf2-py3

注意:flags - shm-size=1g - ulimit memlock=-1 - ulimit stack=67108864是必要的,为了避免操作系统限制资源分配给Docker容器。

我们现在进入了容器,让我们看看是否一切正常。

正如你从图片中看到的,GPU是可用的,tensorflow可以使用它。

640.png

最后:访问docker环境

当您断开与机器的连接时,您将注意到您已经不在容器内了。

要再次连接,你需要使用docker ps找到正在运行的容器的container_ id,然后:

docker exec -it <container_id> /bin/bash</container_id>

最后总结

在本教程中,我们发现使用NVIDIA NGC的图像创建一个具有所有库和工具的生产就绪环境是多么容易。

我们看到了配置Docker使其与NVIDIA驱动程序和所需框架通信是多么容易。

我们在5分钟内完成了所有这些工作

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
3月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:智能垃圾分类与环境保护
使用Python实现深度学习模型:智能垃圾分类与环境保护 【8月更文挑战第7天】
175 2
|
6月前
|
机器学习/深度学习 并行计算 算法框架/工具
在Python中进行深度学习环境准备
在Python中进行深度学习环境准备
87 4
|
2月前
|
机器学习/深度学习 自动驾驶 算法
深度学习之虚拟环境生成
基于深度学习的虚拟环境生成是利用深度学习技术自动创建复杂的三维虚拟场景和环境。这一领域在游戏开发、虚拟现实(VR)、增强现实(AR)、模拟训练等方面有广泛的应用。
43 6
|
26天前
|
机器学习/深度学习 数据挖掘 数据处理
深度学习之卫星图像中的环境监测
基于深度学习的卫星图像环境监测是指通过使用深度学习模型处理和分析来自卫星的遥感数据,以实现对地球环境的自动化监测和分析。这项技术极大提升了环境监测的效率、精度和规模,应用于气候变化研究、生态保护、自然灾害监测、城市扩张评估等多个领域。
66 0
|
1月前
|
机器学习/深度学习 人工智能 vr&ar
深度学习之实时数据驱动的虚拟环境
基于深度学习的实时数据驱动的虚拟环境是近年来在计算机图形学、人工智能和虚拟现实(VR)领域的热门话题。
34 0
|
3月前
|
机器学习/深度学习 传感器 监控
深度学习之环境感知模型
基于深度学习的环境感知模型,旨在通过利用深度学习技术,使系统能够感知、理解并响应其所在的物理或虚拟环境。此类模型在自动驾驶、机器人导航、智能监控、虚拟现实等领域有着广泛的应用。
57 3
|
3月前
|
机器学习/深度学习 传感器 算法
深度学习之环境感知系统
基于深度学习的环境感知系统是一类能够理解、感知和解读周围环境的智能系统。通过使用深度学习算法,这些系统可以分析多模态数据(如图像、音频、激光雷达数据等),实时感知环境的动态变化,为自动驾驶、机器人、智能家居等领域提供关键支持。
88 3
|
3月前
|
机器学习/深度学习 自然语言处理 数据处理
|
3月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:智能环境监测与预警
【8月更文挑战第11天】 使用Python实现深度学习模型:智能环境监测与预警
478 2
|
3月前
|
机器学习/深度学习 传感器 监控
深度学习之环境感知模型
基于深度学习的环境感知模型,旨在通过利用深度学习技术,使系统能够感知、理解并响应其所在的物理或虚拟环境。
70 0
下一篇
无影云桌面