Ubuntu+Docker+Tensorflow+GPU安装
Docker对于在Linux下快速建立深度学习的工作环境很有帮助,参考一些文章,2小时安装完成。
0.预备
GCC,Python, CUDA等需要提前安装好。
CUDA上次安装Kaldi时我已经安装好了,是9.1版本。
1. 安装docker[1]
$ sudo apt-get remove docker docker-engine docker.io
$ sudo apt-get update
$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
如果在 production 系統上安裝 docker 最好選擇固定版本,不然就直接用 latest (optional but recommanded)
$ apt-cache madison docker-cedocker-ce | 17.09.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packagesdocker-ce | 17.06.2~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packagesdocker-ce | 17.06.1~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packagesdocker-ce | 17.06.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packagesdocker-ce | 17.03.2~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packagesdocker-ce | 17.03.1~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packagesdocker-ce | 17.03.0~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
$ sudo apt-get install docker-ce=17.09.0~ce-0~ubuntu
直接安裝 latest (fast in dev environment)
$ sudo apt-get install -y docker-ce
post installation
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
重新登入測試能不能不用 sudo 執行 docker
$ docker run hello-world
$ sudo systemctl enable docker
若要移除
$ sudo apt-get purge docker-ce
$ sudo rm -rf /var/lib/docker
2. 安装 nvidia-docker
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb
# Test nvidia-smi 验证是否安装成功
nvidia-docker run --rm nvidia/cuda nvidia-smi
然后在执行下面这句,默认用nvdia-docker替代docker命令:
echo 'alias docker=nvidia-docker' >> ~/.bashrc
bash
3.下载使用TensorFlow镜像
从国内的阿里云Pull images拉取镜像:
sudo docker pull ubuntu # 获取 ubuntu 官方镜像
sudo docker pull registry.cn-hangzhou.aliyuncs.com/denverdino/tensorflow
查看当前镜像列表:
$ sudo docker images
基于某个镜像新建一个容器,并运行bash工具(镜像可以用IMAGE ID表示):
sudo docker run -i -t registry.cn-hangzhou.aliyuncs.com/denverdino/tensorflow /bin/bash
在另一个终端窗口,查看容器:
sudo docker ps # 查看当前运行的容器, ps -a 列出当前系统所有的容器
sunfoot@sunfoot-BigBoy:~$ sudo docker exec -it 6665676662b1 /bin/bash
[sudo] sunfoot 的密码:
Error: No such container: 6665676662b1
sunfoot@sunfoot-BigBoy:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
be332eead58b registry.cn-hangzhou.aliyuncs.com/denverdino/tensorflow "/bin/bash" 2 minutes ago Up 2 minutes 6006/tcp, 8888/tcp dreamy_lamport
sunfoot@sunfoot-BigBoy:~$ sudo docker exec -it be332eead58b /bin/bash
运行 TensorFlow,在Docker容器中打开一个 python 终端
$ python>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print sess.run(a+b)
42
4. NotebookApp下运行Mnist数据集+TF[3]
5. 如何在容器与主机间共享文件
从Docker容器内拷贝文件到主机上,这里bf1bdfb8d32c是容器ID号。
docker cp bf1bdfb8d32c:notebooks/1_hello_tensorflow.ipynb /home/sunfoot/Work/tmp
从主机拷贝文件到容器
用-v挂载主机数据卷到容器内 ,这里db2de2a7c410是IMAGE ID。
docker run -it -v /home/sunfoot/Work/tmp:/mnt db2de2a7c410 /bin/bash
在容器内拷贝 cp /mnt/sourcefile /path/to/destfile
6. TF用GPU运行
可看到49b48d227d6e image是支持GPU的。
sunfoot@sunfoot-BigBoy:~$ docker image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
nvidia/cuda latest 04a9ce0dec6d 3 months ago 1.96GB
tensorflow/tensorflow latest-gpu 49b48d227d6e 3 months ago 3.1GB
ubuntu latest 735f80812f90 3 months ago 83.5MB
hello-world latest 2cb0d9787c4d 4 months ago 1.85kB
registry.cn-hangzhou.aliyuncs.com/denverdino/tensorflow latest db2de2a7c410 7 months ago 1.27GB
所以运行docker run -it -v /home/sunfoot/Work/tmp:/mnt 49b48d227d6e /bin/bash
然后运行python tf_test_2.py, 这个脚本里是使用GPU的,如下.运行成功。
import tensorflow as tf
with tf.device("/gpu:0"):
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul(matrix1, matrix2)
sess = tf.Session()
result = sess.run(product)
print result
sess.close()
参考:
[1] https://wyde.github.io/2017/11/08/How-to-Install-Docker-CE-on-Ubuntu-16-04-and-Fedora-26/
[2] https://wyde.github.io/2017/11/09/How-to-Install-Tensorflow-using-Docker-on-Ubuntu-16-04/
[3] https://blog.csdn.net/baobei0112/article/details/79025309
[4] https://yeasy.gitbooks.io/docker_practice/content/container/run.html
Ubuntu+Docker+Tensorflow+GPU安装相关推荐
- 【tensorflow】tensorflow -gpu安装及jupyter环境更改
tensorflow -gpu安装 首先,安装Anoconda 1. 官网下载点我: 2.安装 点击 python 3.6 version自动下载x64版,下载好之后,然后安装. 如图,打上勾之后,一 ...
- Windows Tensorflow GPU安装
GPU资源对神经网络模型的训练很重要,应充分利用电脑的显卡资源,加快模型的训练速度.这里是本人安装tensorflow-gpu的过程,记录了安装的步骤以及在每个步骤中参考的资料以及所遇到的坑. 大体步 ...
- ubuntu下TensorFlow的安装
众所周知,tensorflow是Google分布式机器学习框架,不仅本身集成好了很多机器学习算法的接口,也为机器学习和深度学习提供了框架平台.但就目前来看基于Ubuntu的tensorflow开发可以 ...
- vmware + ubuntu + docker+ tensorflow
A. 在vmware里安装ubuntu,login登录后桌面空白的问题. 查了很多资料,各种折腾.最后是通过 virtual machine settings -->hardware -- ...
- 【AI实战】深度学习基础环境搭建(Ubuntu + anaconda + tensorflow + GPU + PyCharm)
为方便日常的深度学习模型开发与测试,本人在自己笔记本上搭建一个深度学习的基础环境,便于学习AI使用.本人使用的笔记本配置是CPU为8代i5,显卡为GTX1060,内存为8G,基本上可满足日常的AI研究 ...
- ubuntu16.04+GTX1060+ CUDA9.0+CUDANN7.0 tensorflow(GPU)安装,实测有效,安装包我放在云盘中,直接下载使用。
最近在运行一些 semantic segmentation 的代码,好多都是GPU版本的,自己就安装一下,记录一下,开始错了好多次,最后参考了一些文章,发现这个版本问题很重要,我用的是一下版本cuda ...
- tensorflow gpu安装_tensorflow-gpu安装配置
1 介绍 目前,主流版本是tensorflow-gpu 1.12.0,线上安装这个版本,和这个版本搭配的cuda是9.0版本,cudnn版本是7.0.5. 2 cuda和cudnn安装 cuda驱动地 ...
- Tensorflow+gpu安装
1.方法很简单:在安装好anaconda的前提下,直接用命令conda install tensorflow-gpu==1.4.1即可,其中1.4.1是版本号,可修改. 2.conda安装包如果没有指 ...
- Ubuntu 20.04 安装Tensorflow GPU版本 (GTX-1060显卡)
Ubuntu 20.04 安装Tensorflow GPU版本 (GTX-1060显卡) 参考: https://cyfeng.science/2020/05/02/ubuntu-install-nv ...
最新文章
- 流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析
- 【项目管理】绩效域-工件裁剪对照(工件维度)
- mongoDB3.4主从复制实现(第一种情况亲测)
- c++ dll继续使用然后强制删除dll文件_Windows 10系统安全风险,近300个系统执行文件容易遭受劫持攻击...
- python super用法
- 解决RM删除没有释放空间问题
- C语言 输出重复序列的序号,如何在FASTA序列中找到反向重复模式?
- py文件输出结果_24python中编码格式和文件操作
- ajax-form表单快速传递参数
- require('module') 是什么?
- 关于 Google“博客搜索”Ping 服务应用编程接口(API)
- xp系统下如何安装windows phone 7的软件xap文件
- 可视化大屏|2022年最值得推荐的10款可视化软件
- 安卓课设:翻译君APP(附开源地址)
- 云服务器搭建kms服务器-vol版本
- python人脸比对算法_人脸比对算法-人脸比较(1:N)
- matlab水汽通量,降水成因诊断分析水汽通量水汽通量散度可降水量.pptx
- xlsx 导出导入excel,xlsx-style 修改excel样式
- 【Shecan Notes】从二叉树出发浅谈风险中性定价
- 4G网络数据传输流程 四
热门文章
- 今天发现的好几个PP文字,不敢独享,gaga
- 大数据开发笔记(十):Hbase列存储数据库总结
- 数据分析过程注意事项
- 大数据可视化的重要性体现在哪里
- Python:pip下载库后导入Pycharm的方法
- s5原生android 5.0,三星Galaxy S5/S4吃上原生安卓5.0棒棒糖
- java redis pubsub_如何从Java中的生菜RedisPubSubListener获取消息?
- python编辑器使用技巧大全_markdown编辑器常用功能汇总
- python 保存dataframe_在python2中将dataframe保存到CSV
- TextRank算法