> 文档中心 > Windows部署Docker GPU深度学习开发环境

Windows部署Docker GPU深度学习开发环境

文章目录

        • 1. 安装linux子系统
        • 2. 安装Windows平台Docker-Desktop
        • 3. 安装GPU的Docker镜像
        • 4. 安装VsCode Docker支持

1. 安装linux子系统

windows目前已支持WSL2,可支持将主机的GPU映射到docker中运行。

  • 查看windows平台可支持的linux子系统列表
wsl --list --online

在这里插入图片描述- 安装子系统
推荐安装Ubuntu18.04,20版本有些软件还不能支持

wsl --install -d  Ubuntu-18.04

在这里插入图片描述

  • 设置默认子系统
wsl --setdefault Ubuntu-18.04

在这里插入图片描述

2. 安装Windows平台Docker-Desktop

  • 下载
    下载链接:点击此处

  • 安装
    安装过程略,无脑安装即可。

3. 安装GPU的Docker镜像

  • 拉取Docker镜像
docker pull tensorflow/tensorflow:2.8.0rc1-gpu-jupyter

其它镜像查询地址:传送门

  • 查看下载后的镜像
docker images

在这里插入图片描述tensorflow/tensorflow:2.8.0-gpu-jupyter既是拉取的镜像

  • 基于镜像创建容器
docker run --gpus all -itd -v e:/dockerdir/docker_work/:/home/zhou/ -p 8888:8888 --ipc=host cc9a9ae2a5af jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/home/zhou/'

参数详解:
–gpus all:不加此选项,nvidia-smi命令会不可用
-i: 交互式操作。
-t: 终端。
-p:端口映射,[Host Port]:[Container Port]
–ipc=host,启用进程间通讯
cc9a9ae2a5af:镜像ID
-d:后台运行,需要使用【docker exec -it 容器id /bin/bash】进入容器
- jupyternotebook启动命令:
jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/home/zhou/'

  • 查询容器ID
docker ps 

在这里插入图片描述- 进入容器

docker exec -it cc58e655b170

在这里插入图片描述

4. 安装VsCode Docker支持

  • 安装VsCode
    安装过程略。

  • 安装Docker插件
    在这里插入图片描述

  • 附着容器映射到VsCode
    在这里插入图片描述
    在这里插入图片描述

  • 安装python支持到容器
    在这里插入图片描述

  • 安装jupyter插件到容器VsCode
    在这里插入图片描述

  • 新建或打开notebook文件选择内核
    在这里插入图片描述

  • 测试GPU训练模型

import numpy as npimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Densefrom tensorflow.keras.optimizers import SGDimport time # config = tf.ConfigProto()# config.gpu_options.allow_growth = True# session = tf.Session(config=config)# 启用GPUfrom tensorflow.compat.v1 import ConfigProto# tf 2.x的写法config =ConfigProto()config.gpu_options.per_process_gpu_memory_fraction=0.6tf.compat.v1.Session(config=config)# 构建数据集X_data = np.linspace(-1,1,1000)[:, np.newaxis]noise = np.random.normal(0,0.05,X_data.shape)y_data = np.square(X_data) + noise + 0.5print("shape")print(X_data.shape)# 构建神经网络model = Sequential()model.add(Dense(10, input_shape=(1,), kernel_initializer='normal', activation='relu'))#model.add(Dense(5, activation='relu'))# vs 分类为softmax激活model.add(Dense(10000, kernel_initializer='normal'))model.add(Dense(10000, kernel_initializer='normal'))model.add(Dense(100, kernel_initializer='normal'))model.add(Dense(1, kernel_initializer='normal'))#sgd = SGD(lr=0.001)model.compile(loss='mean_squared_error', optimizer="sgd") #adam# 训练 epoch = 10, 30, 50, view the resultsstart = time.time()model.fit(X_data, y_data, epochs=50, batch_size=16, verbose=1)end = time.time()# 在原数据上预测y_predict=model.predict(X_data)#print(y_predict)model.summary()print("training time {}".format(end - start))

训练效果及GPU使用情况见下图
在这里插入图片描述
至此,Windows部署Docker GPU深度学习开发环境搭建完毕!