0 Docker容器!
看起来似乎和主机没什么区别...
1 进入Docker并打开Jupyter
sudo nvidia-docker run -p 8888:8888 --privileged=true --device /dev/nvidia-uvm:/dev/nvidia-uvm --device /dev/nvidia0:/dev/nvidia0 --device /dev/nvidia1:/dev/nvidia1 --device /dev/nvidiactl:/dev/nvidiactl -it -v /home/test:/home/ghy -v /usr/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu / tensorflow/tensorflow:latest-gpu
注:
-p 8888:8888 打开Jupyter(端口号为8888),前面的8888为指定的本地端口号
-v /usr/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu 不这么写的话,在使用Tensorflow时会出现‘ ImportError: libcuda.so.1: cannot open shared object file: No such file or directory’
/ tensorflow/tensorflow:latest-gpu 下载的TensorFlow镜像
2 查看正在运行的容器
sudo docker ps -a
3 进入其中一个容器
48945e4a21b2为其中一个CONTAINER ID
sudo docker exec -it 48945e4a21b2 /bin/bash
4 运行代码
有三种方式:直接运行,运行.py文件,在Jupyter运行。
4.1 直接运行
依次输入命令:
python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print sess.run(hello)
Hello, TensorFlow!
结果如下图,
4.2 运行.py文件
主机和Docker交换文件的方式如下图,
由于docker环境中没有gedit,因此需要将程序在主机中写好,再拷贝到docker与主机映射的文件夹下。
sudo docker cp /home/ghy/test/test.py 48945e4a21b2:/home/ghy/
python test.py
运行结果同4.1
4.3 在Jupyter运行
选择new ->Python2
打开Untitled.ipyn文件,并输入代码
点Run,得到结果