一、docker安装anaconda
1、到anaconda清华镜像网站下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
注意版本:Anaconda2表示python2,Anaconda3表示python3。
2、如下载的是Anaconda3-5.3.0-Linux-x86_64.sh,则安装的命令是 sh Anaconda3-5.3.0-Linux-x86_64.sh
3、更新环境变量
# source ~/.bashrc
# conda -V
4、安装相关包:conda install 包名
如安装jupyter notebook,详细看一; conda install jupyter notebook
启动:jupyter notebook
5、创建tensorflow环境:
- conda create -n tf1.13.1-py3.6 python=3.6
激活环境:source activate tf1.4-py3.6
查看conda有哪些环境:conda info -e
二、安装jupyter
进入docker交互式环境:docker exec -it ***** bash
安装jupyter:
- 安装python dev包 :
apt-get install python-dev
- 安装jupyter :
pip install jupyter [若pip没安装好,需要安装sudo apt install python3-pip]
配置文件:
生成jupyter配置文件:jupyter notebook --generate-config
使用ipython生成密码
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:******'
- 到配置文件/root/.jupyter/jupyter_notebook_config.py中修改以下参数
c.NotebookApp.ip='*' #绑定所有地址,即所有IP 地址都可以访问
c.NotebookApp.password = u'sha1:******
'
c.NotebookApp.open_browser = False #启动后是否在浏览器中自动打开
c.NotebookApp.port =8100 #指定一个访问端口8100,默认8888
c.NotebookApp.allow_remote = True #将远程访问设置成True
启动:
jupyter notebook --allow-root
本机访问:
- 查看docker IP,需安装 apt install net-tools ,然后输入命令ifconfig -a。
找到inet后的IP地址即为docker地址。如:inet 153.16.0.1
- 远程访问:http://153.16.0.1:8100即可。8100为配置文件时修改的启动端口,若有密码,即token= 后面输入密码。/
远程访问:
在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。
1、若没有启动容器时,即docker run -it ***,则可以通过以下命令指定容器8888端口映射成主机端口8000。-p 后面接主机端口:容器端口,-d表示后台执行,-it是进入交互式。
docker run -d -it -p 8000:8888 tensorlow_gpu:latest /bin/bash
【然后通过docker ps可以查看映射成功】
2、若容器已经执行了,即docker ps -a是存在的容器可以通过以下两种方式:本人只成功了第一种:
(1)
- 提交一个运行中的容器为镜像,先查询该容器的ID *****,通过docker ps -a查询,以下tensorflow1_13_1是自己取的新容器名字。
docker commit ****(containerid) tensorflow1_13_1
- 运行镜像并添加端口
docker run -d -it -p 8000:8888 tensorflow1_13_1 /bin/bash
- 进入docker 中,docker exec -it *****(新容器ID,docker ps -a查询) bash
- 启动jupyter notebook,jupyter notebook --allow-root,默认端口8888
- 远程访问jupyter,浏览器中输入网址:主机IP+映射端口8000,即http://11.161.112.1:8000
(2)试得不成功,没理解inspect ,过后再补
http://www.yinxi.net/doc/show.php?DocID=10732
1、获得容器IP
将container_name 换成实际环境中的容器名
docker inspect `container_name` | grep IPAddress
2、 iptable转发端口
将容器的8000端口映射到docker主机的8001端口
复制代码 代码如下:
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
三、安装tensorflow
1、安装cuda和cudnn
CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。
链接:https://www.jianshu.com/p/622f47f94784
只要把cuDNN文件复制到CUDA的对应文件夹里就可以,即是所谓插入式设计,把cuDNN数据库添加CUDA里,cuDNN是CUDA的扩展计算库,不会对CUDA造成其他影响。
(1)注意显卡型号:
输入命令lshw -c video
,查看显卡型号driver version。找到对应的cuda版本下载。
看到以下这些结果表明支持nvidia以及显卡类型为GP102 [TITAN Xp]
product: GP102 [TITAN Xp]
vendor: NVIDIA Corporation
(2)安装显卡驱动
去NVDIA driver search page搜索你的显卡需要的驱动型号并下载(如图)。
或者输入命令查询可用 驱动版本:ubuntu-drivers devices
要想安装440:sudo apt install nvidia-440
测试安装成功:输入nvidia-smi命令测试是否有结果
(3)安装cuda
如果训练中用到了 tensorflow,应该确认一下 cuda 版本与 tensorflow 版本的兼容性问题
https://tensorflow.google.cn/install/source#linux
确定安装cuda10.0+cudnn7.4+tensorflow1.13.1
cuda下载地址:https://developer.nvidia.com/cuda-toolkit-archive
根据命令安装cuda
(4)安装cudnn
https://developer.nvidia.com/rdp/cudnn-archive
下载对应版本的tgz文件Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0,然后解压 tar xfz cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0.tgz.
将解压出来的文件夹中的include文件夹和lib64文件夹内容全部复制到已经安装的cuda相对应的文件夹(一般在/usr/local/cuda-10.0)中。
(5)安装tensorflow1.13.1
如果直接输入pip install tensorflow-gpu=1.13.1,下载速度及其慢。
可以换源:python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.13.1