用docker搭建深度学习实验环境

tensorflow和pytorch官方都维护了不同版本的docker镜像。借助docker我们可以方便的搭建起深度学习实验环境。

但是想要在同一个容器内同时拥有tensorflow、pytorch、jupyter notebook 并支持GPU,就需要自己来动手了。

硬件环境:

华硕b450主板
AMD r7 2700 CPU
NVIDIA 2060 RTX显卡
16G内存

软件环境:

ubuntu 18.10
docker ce 18.09.3
nvidia驱动:nvidia-driver-418

配置思路:

基于tensorflow + gpu + jupyter镜像,再在容器内安装pytorch即可。

开始动手:

1、到Docker Hub找一个合适的docker镜像:

《用docker搭建深度学习实验环境》
《用docker搭建深度学习实验环境》

就用nightly-gpu-py3-jupyter了, 拉下来

docker pull tensorflow/tensorflow:nightly-gpu-py3-jupyter

2、参考tensorflow官方教程。要在docker内使用gpu,首先需要在host环境下安装nvidia-docker。

官方教程: https://www.tensorflow.org/install/docker

nvidia-docker项目地址:NVIDIA/nvidia-docker

注意:nvidia-docker对系统docker版本的要求极为严格,请仔细检查兼容性。

提示:为了不必要的麻烦,我直接重新安装了nvidia官方推荐的docker版本。(由于nvidia-docker尚不支持ubuntu18.10 Cosmic Cuttlefish,我安装的docker ce是适配18.04 Bionic Beaver的版本–> Index of linux/ubuntu/dists/bionic/pool/stable/amd64/

docker安装教程,请参考:Get Docker CE for Ubuntu

3、如果一切正常,安装完成nvidia-docker后就可以在docker容器内使用gpu了。

测试一下: docker run –runtime=nvidia –rm nvidia/cuda nvidia-smi

注意 –runtime=nvidia是必须的,否则容器内检测不到GPU

4、启动tensorflow/tensorflow:nightly-gpu-py3-jupyter,就可以拥有一个支持tensorflow+GPU+jupyter notebook的实验环境了:

docker run --runtime=nvidia --name tf --rm -it -v /home/helo/data/tf:/tf -p 8888:8888 tensorflow/tensorflow:nightly-gpu-py3-jupyter

访问localhost:8888,输入token就能进入jupyter notebook了

检查一下GPU是否工作正常:

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

《用docker搭建深度学习实验环境》
《用docker搭建深度学习实验环境》

5、添加pytroch支持

稍微修改一下刚才的docker run命令,让容器启动在后台。

docker run --runtime=nvidia --name tf -dt -v /home/helo/data/tf:/tf -p 8888:8888 tensorflow/tensorflow:nightly-gpu-py3-jupyter

使用docker exec命令进入容器内:

docker exec -it tf bash

《用docker搭建深度学习实验环境》
《用docker搭建深度学习实验环境》

安装pytorch:

pytorch官方安装教程:PyTorch

需要检查一下容器内python和cuda的版本:

python --version
nvcc --version

《用docker搭建深度学习实验环境》
《用docker搭建深度学习实验环境》

根据pytorch官方提示完成安装

《用docker搭建深度学习实验环境》
《用docker搭建深度学习实验环境》

6、检测pytorch是否安装成功(可能需要重启容器)

import torch
if torch.cuda.is_available():
    device = torch.device("cuda")          # a CUDA device object
    y = torch.ones_like(x, device=device)  # directly create a tensor on GPU
    x = xto photography and illustration competition(device)                       # or just use strings ``.to("cuda")``
    z = x + y
    print(z)
    print(Denise and Gary Zimmerman's Home On The Web("cpu", torch.double))      

至此,基于docker的深度学习实验环境就配置完成了。记得docker commit一下。

补充:也可以在jupyter内的Terminal上完成pytorch安装

https://cloud.docker.com/repository/docker/roughwin/ml

    原文作者:张大
    原文地址: https://zhuanlan.zhihu.com/p/59617018
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞