安装docker,nvidia-docker 之后:
#若是第一次,则是创建一个tensorflow:1.12.0-gpu-py3 镜像和容器
#若是第二次,则是创建一个容器
#--name wuyi 将容器的名字重命名为wuyi.可自己设置
#8888:8888 容器端口 ,同一端口容器不能同时打开
#-v /home/wy/docker_copy/wuyi:/notebooks/data 表示将宿主机下的/home/wy/docker_copy/wuyi路径的文件夹和容器下/notebooks/data文件夹共享,这样可以做到宿主机和容器下文件共享,
#tensorflow/tensorflow:1.12.0-gpu-py3 1.12.0是因为因为cuda版本是9.0 所以安装对应版本的tensorflow-gpu,最新版本的不支持cuda 9
nvidia-docker run --name wuyi -it -p 8888:8888 -v /home/wy/docker_copy/wuyi:/notebooks/data tensorflow/tensorflow:1.12.0-gpu-py3
等待下载好之后,会出现
我安装1.12版本的,是用jupyter 来访问的,所以对比红框中链接,改成下面链接登录
http://127.0.0.1:8888/?token=908167d0f1279c14b47633a8a6fdb096315edd7cc66363bb
如果你是cuda10 ,可以安装最新版本的,就不是jupyter的方式,根据自己的版本抉择
在弹出的jupyter中,选择terminar,粘贴如下代码,验证是否是gpu 在工作
import tensorflow as tf
import numpy as np
x = tf.placeholder("float",shape=[None,1])
W = tf.Variable(tf.zeros([1,1]))
b = tf.Variable(tf.zeros([1]))
y = tf.matmul(x,W) +b
y_ = tf.placeholder("float",[None,1])
cost = tf.reduce_sum(tf.pow((y_-y),2))
train_step = tf.train.GradientDescentOptimizer(0.001).minimize(cost)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
All_x = np.empty(shape=[1,1])
All_y = np.empty(shape=[1,1])
for i in range(1000):
x_s = np.random.rand(1,1)
y_s = np.dot([[0.33]],np.random.rand(1,1)) + 0.33
feed = {x: x_s, y_: y_s}
sess.run(train_step,feed_dict=feed)
print("After %d iteration:"%i)
print("W : %f"%sess.run(W))
print("b : %f"%sess.run(b))
All_x = np.concatenate((All_x,x_s))
All_y = np.concatenate((All_y,y_s))
结果如下:
docker 常用指令
#查看已有镜像
docker images
#查看已有容器
docker ps -a
#删除容器 (CONTAINER ID 为容器ID的名称)
docker rm CONTAINER ID
#创建一个tensorflow-gpu镜像和容器(查看上面所述的版本对应问题)
sudo nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:latest-gpu
#打开一个容器 CONTAINER ID 为容器ID的名称
nvidia-docker start -i CONTAINER ID
#安装pip3 使用apt-get需要网好
apt-get install python3-pip
#删除镜像ID或者名称都可以
docker rmi image_id
#创建一个python3下的tensorflow-gpu镜像(查看上面所述的版本对应问题)
nvidia-docker pull tensorflow/tensorflow:latest-gpu-py3