前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Docker安装TensorFlow ,并设置GPU/CPU支持

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

原创
作者头像
用户5481900
发布2022-05-26 17:34:07
1.5K0
发布2022-05-26 17:34:07
举报
文章被收录于专栏:从筝从筝

一、Ubunutu20.4系统设置root登录及密钥登录

1、进入服务器主界面,将系统更换为Ubuntu20.4

https://console.cloud.tencent.com/cvm/instance/index?rid=4&ProjectId=0&pid=0

image-20220526164532459
image-20220526164532459
2、在Git官网下载Git并安装,然后执行以下命令,生成ssh密钥,此操作在本机上执行。
代码语言:text
复制
-- 设置Git用户名和邮箱
git config --global user.name "用户名"
git config --global user.email "邮箱"
-- 生成ssh密钥
ssh-keygen -t rsa -C "邮箱"
之后一直回车,全部默认,不需要设置其他内容

然后将C:\Users\PanYiFan.ssh下的id_rsa.pub使用记事本打开,复制里面的内容。

3、在云服务界面,选择SSH密钥-->创建密钥-->导入已有密钥,自定义名称,然后将复制到密钥粘贴到公钥里面,之后点击确定。
image-20220526165526421
image-20220526165526421
4、选择实例-->更多操作-->密码/密钥-->加载密钥,选择刚才所加的密钥,然后一直默认,确认前选择同意重启服务器,之后点击确定。
image-20220526165728895
image-20220526165728895
5、复制公网IP,使用SSH连接工具连上服务器,登录需要选择使用Ubuntu用户登录。
6、
代码语言:shell
复制
ubuntu@master:~$ sudo passwd
New password:
Retype new password:
passwd: password updated successfully
登录到root
ubuntu@master:~$ su
root@master:/home/ubuntu# vim /etc/ssh/sshd_config
进入vim后,录入[:set nu],显示出来行号
将第33行改为yes,如下
#PermitRootLogin prohibit-password
33 PermitRootLogin yes
之后按esc,:wq保存

root@master:/home/ubuntu# service ssh restart
然后设置root的用户的免密登录密钥
代码语言:txt
复制
root@master:/home/ubuntu# vim /root/.ssh/authorized_keys
然后将刚才生成的公钥复制到这个地方
最后依次按esc,:wq保存退出。

然后最后退出远程软件,验证是否可以直接root登录

二、安装Docker

step 1: 安装必要的一些系统工具

代码语言:txt
复制
 sudo apt-get update
 sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

step 2: 安装GPG证书,写入软件源信息

代码语言:txt
复制
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

Step 3: 更新并安装Docker-CE

代码语言:txt
复制
 sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

三、安装TensorFlow

1、设置 NVIDIA 容器工具包,官网

1、设置包存储库和 GPG 密钥:

代码语言:txt
复制
$ 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包(和依赖项):

代码语言:txt
复制
$ sudo apt-get update
$ sudo apt-get install -y nvidia-docker2

3、设置默认运行时后重启 Docker 守护进程完成安装:

代码语言:txt
复制
$ sudo systemctl restart docker

4、此时,可以通过运行基本 CUDA 容器来测试工作设置:

代码语言:txt
复制
$ sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

5、这应该会产生如下所示的控制台输出:

代码语言:txt
复制
+-----------------------------------------------------------------------------+
| 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                                                 |
+-----------------------------------------------------------------------------+
2、下载 TensorFlow Docker 映像

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

标记

说明

latest

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

nightly

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

version

指定 TensorFlow 二进制映像的版本,例如:2.1.0

devel

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

custom-op

用于开发 TF 自定义操作的特殊实验性映像。详见此处

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

标记变体

说明

tag-gpu

支持 GPU 的指定标记版本。(详见下文

tag-jupyter

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

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

代码语言:shell
复制
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
3、启动 TensorFlow Docker 容器

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

代码语言:txt
复制
docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]

有关详情,请参阅 docker 运行参考文档

4、使用仅支持 CPU 的映像的示例

我们使用带 latest 标记的映像验证 TensorFlow 安装效果。Docker 会在首次运行时下载新的 TensorFlow 映像:

代码语言:shell
复制
docker run -it --rm tensorflow/tensorflow \
   python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

成功:TensorFlow 现已安装完毕。请查看教程开始使用。

我们来演示更多 TensorFlow Docker 方案。在配置 TensorFlow 的容器中启动 bash shell 会话:

代码语言:txt
复制
docker run -it tensorflow/tensorflow bash

在此容器中,您可以启动 python 会话并导入 TensorFlow。

如需在容器内运行在主机上开发的 TensorFlow 程序,请装载主机目录并更改容器的工作目录 (-v hostDir:containerDir -w workDir):

代码语言:shell
复制
docker run -it --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow python ./script.py

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

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

代码语言:txt
复制
docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-jupyter

按照说明在主机网络浏览器中打开以下网址:http://127.0.0.1:8888/?token=...

5、GPU 支持

Docker 是在 GPU 上运行 TensorFlow 的最简单方法,因为主机只需安装 NVIDIA® 驱动程序,而不必安装 NVIDIA® CUDA® 工具包。

安装 Nvidia 容器工具包以向 Docker 添加 NVIDIA® GPU 支持。nvidia-container-runtime 仅适用于 Linux。有关详情,请参阅 nvidia-container-runtime 平台支持常见问题解答

检查 GPU 是否可用:

代码语言:txt
复制
lspci | grep -i nvidia

验证 nvidia-docker 安装效果:

代码语言:txt
复制
docker run --gpus all --rm nvidia/cuda nvidia-smi

注意nvidia-docker v2 使用 --runtime=nvidia,而不是 --gpus allnvidia-docker v1 使用 nvidia-docker 别名,而不是 --runtime=nvidia--gpus all 命令行标记。

6、使用支持 GPU 的映像的示例

下载并运行支持 GPU 的 TensorFlow 映像(可能需要几分钟的时间):

代码语言:shell
复制
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 会话:

代码语言:txt
复制
docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Ubunutu20.4系统设置root登录及密钥登录
    • 1、进入服务器主界面,将系统更换为Ubuntu20.4
      • 2、在Git官网下载Git并安装,然后执行以下命令,生成ssh密钥,此操作在本机上执行。
        • 3、在云服务界面,选择SSH密钥-->创建密钥-->导入已有密钥,自定义名称,然后将复制到密钥粘贴到公钥里面,之后点击确定。
          • 4、选择实例-->更多操作-->密码/密钥-->加载密钥,选择刚才所加的密钥,然后一直默认,确认前选择同意重启服务器,之后点击确定。
            • 5、复制公网IP,使用SSH连接工具连上服务器,登录需要选择使用Ubuntu用户登录。
              • 6、
                • 然后设置root的用户的免密登录密钥
                • 二、安装Docker
                • 三、安装TensorFlow
                  • 1、设置 NVIDIA 容器工具包,官网
                    • 2、下载 TensorFlow Docker 映像
                      • 3、启动 TensorFlow Docker 容器
                        • 4、使用仅支持 CPU 的映像的示例
                          • 5、GPU 支持
                            • 6、使用支持 GPU 的映像的示例
                            相关产品与服务
                            GPU 云服务器
                            GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档