首页 > 其他分享 >使用 Docker 安装 TensorFlow 并设置 GPU/CPU 支持

使用 Docker 安装 TensorFlow 并设置 GPU/CPU 支持

时间:2024-09-19 13:53:01浏览次数:12  
标签:TensorFlow tensorflow -- GPU 镜像 Docker docker


GPU 云服务器(Cloud GPU Service)是基于 GPU 的快速、稳定、弹性的计算服务,主要应用于深度学习训练/推理、图形图像处理以及科学计算等场景。 GPU 云服务器提供和标准 CVM 云服务器一致的方便快捷的管理方式。GPU 云服务器通过其强大的快速处理海量数据的计算性能,有效解放用户的计算压力,提升业务处理效率与竞争力。

操作场景

您可通过 Docker 快速在 GPU 实例上运行 TensorFlow,且该方式仅需实例已安装 NVIDIA® 驱动程序,无需安装 NVIDIA® CUDA® 工具包。

本文介绍如何在 GPU 云服务器上,使用 Docker 安装 TensorFlow 并设置 GPU/CPU 支持。

说明事项

本文操作步骤以 Ubuntu 20.04 操作系统的 GPU 云服务器为例。

您的 GPU 云服务器实例需已安装 GPU 驱动。

说明

建议使用公共镜像创建 GPU 云服务器。若选择公共镜像,则勾选后台自动安装 GPU 驱动即可预装相应版本驱动。该方式仅支持部分 Linux 公共镜像,详情请参见 各实例支持的 GPU 驱动版本及安装方式

操作步骤

安装 Docker

1. 登录实例,依次执行以下命令,安装所需系统工具。

sudo apt-get update

sudo apt-get install \

ca-certificates \

curl \

gnupg \

lsb-release

2. 执行以下命令,安装 GPG 证书,写入软件源信息。

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \

"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \

$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3. 依次执行以下命令,更新并安装 Docker-CE。

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

安装 TensorFlow

设置 NVIDIA 容器工具包

1. 执行以下命令,设置包存储库和 GPG 密钥。详细信息请参见 Setting up NVIDIA Container Toolkit

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

2. 执行以下命令,安装 nvidia-docker2 包及依赖项。

sudo apt-get update

sudo apt-get install -y nvidia-docker2

3. 执行以下命令,设置默认运行时重启 Docker 守护进程完成安装。

sudo systemctl restart docker

4. 此时可执行以下命令,通过运行基本 CUDA 容器来测试工作设置。

sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

返回结果如下所示:

+-----------------------------------------------------------------------------+

| NVIDIA-SMI 450.51.06 Driver Version: 450.51.06 CUDA Version: 11.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:1E.0 Off | 0 |

| N/A 34C P8 9W / 70W | 0MiB / 15109MiB | 0% Default |

| | | N/A |

+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+

| Processes: |

| GPU GI CI PID Type Process name GPU Memory |

| ID ID Usage |

|=============================================================================|

| No running processes found |

+-----------------------------------------------------------------------------+

下载 TensorFlow Docker 镜像

官方 TensorFlow Docker 镜像位于 tensorflow/tensorflow Docker Hub 代码库中。镜像版本按照以下格式进行标记:

标记

说明

latest

TensorFlow CPU 二进制镜像的最新版本。(默认版本)

nightly

TensorFlow 镜像的每夜版。(不稳定)

version

指定 TensorFlow 二进制镜像的版本,例如 2.1.0。

devel

TensorFlow master 开发环境的每夜版。包含 TensorFlow 源代码。

custom-op

用于开发 TensorFlow 自定义操作的特殊实验性镜像,详情请参见 tensorflow/custom-op

每个基本标记都有会添加或更改功能的变体:

标记变体

说明

tag-gpu

支持 GPU 的指定标记版本。

tag-jupyter

针对 Jupyter 的指定标记版本(包含 TensorFlow 教程笔记本)。

您可以一次使用多个变体。例如,以下命令会将 TensorFlow 版本镜像下载到计算机上:

docker pull tensorflow/tensorflow # latest stable release

docker pull tensorflow/tensorflow:devel-gpu # nightly dev release w/ GPU support

docker pull tensorflow/tensorflow:latest-gpu-jupyter # latest release w/ GPU support and Jupyter

启动 TensorFlow Docker 容器

启动配置 TensorFlow 的容器,请使用以下命令格式。

docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]

示例

使用仅支持 CPU 的镜像的示例

如下所示,使用带 latest 标记的镜像验证 TensorFlow 安装效果。Docker 会在首次运行时下载新的 TensorFlow 镜像:

docker run -it --rm tensorflow/tensorflow \

python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

其他 TensorFlow Docker 方案示例如下:

在配置 TensorFlow 的容器中启动 bash shell 会话:

docker run -it tensorflow/tensorflow bash

如需在容器内运行在主机上开发的 TensorFlow 程序,请通过 -v hostDir:containerDir -w workDir 参数,装载主机目录并更改容器的工作目录。示例如下:

docker run -it --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow python ./script.py

说明

向主机公开在容器中创建的文件时,可能会出现权限问题。通常情况下,最好修改主机系统上的文件。

使用 nightly 版 TensorFlow 启动 Jupyter 笔记本服务器:

docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-jupyter

请参考 Jupyter 官网 相关说明,使用浏览器访问 http://127.0.0.1:8888/?token=...

使用支持 GPU 的镜像的示例

执行以下命令,下载并运行支持 GPU 的 TensorFlow 镜像。

docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu \

python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

设置支持 GPU 镜像可能需要一段时间。如果重复运行基于 GPU 的脚本,您可以使用 docker exec 重复使用容器。 执行以下命令,使用最新的 TensorFlow GPU 镜像在容器中启动 bash shell 会话:

docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash

标签:TensorFlow,tensorflow,--,GPU,镜像,Docker,docker
From: https://blog.51cto.com/u_17018880/12056522

相关文章

  • 使用腾讯云 GPU 云服务器完成 blender 的动画图片渲染
    步骤1:准备环境系统环境blender在Windows上运行较为稳定易用,所以建议使用腾讯云的WindowsServer2019,已经预装好驱动前往blender官网安装blenderDownload—blender.org如果您希望只渲染,我们开发了一个专门用来blender渲染的软件:ArSrNaBlender渲染助手:https://www.arsrna.cn/app......
  • 使用腾讯云 GPU 云服务器训练 ViT 模型
    ViT模型简介ViT全称VisionTransformer,该模型由AlexeyDosovitskiy等人提出,在多个任务上取得SoTA结果。示意图如下:对于一幅输入的图像,ViT将其划分为多个子图像patch,每个patch拼接positionembedding后,和类别标签一起作为TransfomerEncoder的一组输入。而类别标签位......
  • 腾讯云 Windows GPU 云服务器搭建深度学习环境
    GPU云服务器(CloudGPUService)是基于GPU的快速、稳定、弹性的计算服务,主要应用于深度学习训练/推理、图形图像处理以及科学计算等场景。GPU云服务器提供和标准CVM云服务器一致的方便快捷的管理方式。GPU云服务器通过其强大的快速处理海量数据的计算性能,有效解放用户的计算......
  • GPU云服务器和普通云服务器有哪些不同?
    GPU云服务器(CloudGPUService)是基于GPU的快速、稳定、弹性的计算服务,主要应用于深度学习训练/推理、图形图像处理以及科学计算等场景。GPU云服务器提供和标准CVM云服务器一致的方便快捷的管理方式。GPU云服务器通过其强大的快速处理海量数据的计算性能,有效解放用户的计算......
  • docker在基础镜像上,比如rockylinux,如何配置yum仓库
    在基础镜像rockylinux上启动的容器,没有yum仓库,就执行不了一些命令~]dockerrun-itd--namelinuxrockylinux:8.5~]#dockerexec-itlinuxbash/]#ifconfigbash:ifconfig:commandnotfound/]#vimbash:vim:commandnotfound/]#ipasbash:ip:c......
  • docker compose.yml 文件属性详解
    dockercompose.yml文件属性详解version:"3.5"services:rabbitmq:container_name:rabbitmqimage:rabbitmq:3.9.15-management-alpinerestart:alwaysenvironment:-TZ=Asia/Shanghai-RABBITMQ_DEFAULT_USER=admin#设置Rabb......
  • Docker常用命令大全
    文章目录Docker常用命令大全一、引言二、Docker命令分类1、镜像相关命令1.1、查看本地所有镜像1.2、搜索镜像1.3、拉取镜像1.4、删除镜像2、容器相关命令2.1、运行容器2.2、查看容器列表2.3、停止容器2.4、删除容器2.5、进入容器3、其他常用命令3.1、查看Docker版本......
  • python 深度神经网络训练,pytorch ,tensorflow paddle大模型训练中损失突然增大的原因
    在机器学习和深度学习的训练过程中,损失函数的数值突然变高可能是由多种因素引起的。以下是一些可能的原因和相应的解决方案:1.**学习率设置不当**:如果学习率过高,可能会导致模型在优化过程中跳过最小值,甚至导致模型发散。相反,如果学习率过低,则可能导致模型训练速度过慢,甚至停滞......
  • Docker命令整理
    目录容器生命周期管理容器操作容器root文件系统(rootfs)命令镜像仓库本地镜像管理info|version网络命令卷命令按命令分类来整理,参考链接:https://www.runoob.com/docker/docker-command-manual.html容器生命周期管理创建并启动一个新容器——run#基本使用dockerrunubuntu......
  • docker 执行dockerfile CMD
    环境centos7.9,dockerv25.0.4方法要执行Dockerfile中定义的CMD指令,你通常需要构建一个Docker镜像,然后运行一个基于该镜像的容器。CMD指令在构建镜像时定义了容器启动时默认执行的命令。下面举例使用容器执行命令的俩种方法:#使用官方Python运行时作为父镜像FROMpython:3......