zoukankan      html  css  js  c++  java
  • docker中安装anaconda+ jupyter(远程访问)+tensorflow

    一、docker安装anaconda

    1、到anaconda清华镜像网站下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

    注意版本:Anaconda2表示python2,Anaconda3表示python3。查看:https://blog.csdn.net/yuejisuo1948/article/details/81043823

    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文件,然后解压 tar xfz

     (5)安装tensorflow1.13.1

  • 相关阅读:
    微信小程序HTTPS
    微信商城-1简介
    va_list
    Event log c++ sample.
    EVENT LOGGING
    Analyze Program Runtime Stack
    unknow table alarmtemp error when drop database (mysql)
    This application has request the Runtime to terminate it in an unusual way.
    How to check if Visual Studio 2005 SP1 is installed
    SetUnhandledExceptionFilter
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/12163947.html
Copyright © 2011-2022 走看看