美文网首页
pytorch & docker & jupyter

pytorch & docker & jupyter

作者: 不太聪明的亚子 | 来源:发表于2020-09-16 11:37 被阅读0次

    昨天开始学习使用dockers,为了用上服务器上的GPU,但是很麻烦,麻烦在哪里呢:

    非常不方便修改和查看代码,每次需要本地修改了传到服务器上,再拷贝到容器里!超级麻烦。

    所以,需要新建一个容器,一步到位:共享与服务器的文件目录,本地通过jupyter可以修改代码。

    这个关键点就在于docker run!

    sudo docker run -it -d -p 8888:8888 --ipc=host --name pytorch1.3 -v /home/xx/:/workspace pytorch/pytorch:1.3-cuda10.1-cudnn7-devel /bin/bash

    如果要使用GPU,主机环境是nvidia驱动加cuda,就需要将docker run换成nvidia-docker run,这样新启动的容器就有驱动了。

    参数解析:    

        -it:终端交互式操作 

        -d:后台运行容器,并返回容器id

        -p:指定端口映射

        8888:8888:前一个8888是主机(这里是服务器)端口,后一个是容器端口

        --ipc=host:让容器共享主机ipc命名空间

        --name pytorch1.3:给这个容器命名为pytorch1.3

        -v /home/xx/:/workspace:共享目录,/home.xx/是主机文件目录,/workspace是容器文件目录

        pytorch/pytorch:是镜像名称

        1.3-cuda10.1-cudnn7-devel是镜像版本

        /bin/bash:终端交互

    docker exec -u 0 -it ContainerName /bin/bash: 以root身份进入容器

    如需升级pytorch:  pip install --upgrade torch==1.8.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/

    接着就是pip自己需要的包了,pip intsall jupyter -i 国内源

    有时候国内源一个不稳定会出现网络错误,可以换着来!

    国内源:

    https://pypi.tuna.tsinghua.edu.cn/simple/ # 清华大学

    https://mirrors.aliyun.com/pypi/simple/ # 阿里云

    https://pypi.douban.com/simple/ # 豆瓣

    https://pypi.mirrors.ustc.edu.cn/simple/ # 中国科学技术大学

    https://pypi.hustunique.com/ # 华中科技大学

    安装vim

    apt-get install vim

    如果出错:E: Unable to locate package vim

    那么:

    cp /etc/apt/sources.list /etc/apt/sources.list.bak 先备份原来的文件,再执行:

    echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list

    echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list

    echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list

    echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list

    上面这些换源操作因为源的公钥问题已经作废,直接更新apt-get就行。

    apt-get update 更新源

    再执行apt-get install vim。

    配置jupyter notebook可远程访问

    (1)jupyter-notebook --generate-config

    (2)设置jupyter的密码:jupyter-notebook password

    (3)去复制生成的sha1码:vim /root/.jupyter/jupyter_notebook_config.json

    linux vim编辑命令:

        ins键:是进入编辑模式;

        Esc键是进入命令模式,此时输入:q是直接退出,:wq是写完保存退出

        这里复制密码只需要在命令模式下选中ctrl+c就行,然后:q退出

    (4)在jupyter_notebook_config.py 文件填入配置:vim /root/.jupyter/jupyter_notebook_config.py

        进入编辑模式,填写下面信息

        # 允许通过任意绑定服务器的ip访问

        c.NotebookApp.ip = '*'

        # 用于访问的端口

        c.NotebookApp.port = 8888 

        #注意,这里的8888是与上面启动的容器开放端口一致

        # 不自动打开浏览器

        c.NotebookApp.open_browser = False

        # 设置登录密码

        c.NotebookApp.password = u'sha1:xxxxxxxxxxxxxxxx' # 上面复制的sha1码

        进入命令模式,:wq退出

    (5)容器内启动jupyter:jupyter notebook --allow-root

    如果想让jupyter在窗口关闭后在后台运行:nohup jupyter notebook --allow-root > jupyter.log 2>&1 &,日志会写到.log中。

    (6)本地浏览器启动远程docker 的jupyter:http://服务器Ip:8888,这里的8888是与上面启动的服务器开放端口一致。

    就可以输入自己设置的密码,就可以进入jupyter啦!

    将.ipynb 文件转成.py

    执行jupyter nbconvert --to script xxx.ipynb

    可以直接编辑容器里面的代码真的太好了!

    相关文章

      网友评论

          本文标题:pytorch & docker & jupyter

          本文链接:https://www.haomeiwen.com/subject/zqscyktx.html