美文网首页程序员
笔记本没有GPU肿么办:机器学习远程端实验心得2

笔记本没有GPU肿么办:机器学习远程端实验心得2

作者: 坂本龙一 | 来源:发表于2017-06-23 07:55 被阅读0次

    机器学习远程端实验心得2

    上一篇主要写怎样和远程端连接,同步文件。 这一次提一些其他,我认为也特别好用的工具。

    1. Jupyter Notebook 远程端设置

    jupyter notebook确实是一个非常好用的东西,特别是在网上学各种教程的时候,一般他们都会给出你可以互动的notebook来。同时,平时自己想要实验一些小的东西,用notebook也会特别方便。

    当然,直接用亚马逊 aws或者其他的供应商的远程端也是可以的。

    但是既然实验室有服务器,又是免费的那么直接拿来用方便很多。废话不多说。

    conda install jupyter notebook # 安装包
    conda install nb_conda # 安装notebook和conda环境连接起来的包,这样就可以很方便的在notebook里面就可以换环境了,但是有一个问题是,python3.6安装的时候会出现依赖问题,所以最好新建一个py3.5的环境来安装
    
    # 开始设置
    jupyter notebook --generate-config
    #生成密码,进入Ipython
    In [1]: from note.auth import passwd
    In [2]: passwd()
    Enter password:
    Verify password:
    Out[2]: 'sha1:.....' # 加密后的密码
    

    之后把这个密文拷贝下来。然后开始修改刚才在上面生成的配置文件。

    vim ~/.jupyter/jupyter_notebook_config.py

    c.NotebookApp.ip='*'
    c.NotebookApp.password = u'sha1:...' # 密文
    c.NotebookApp.open_browser = False
    c.NotebookApp.port = 9000 # 随便设置一个端口,只要不冲突
    

    如果考虑到安全问题想要使用SSL来加密的话,可以这样。

    openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem # 生成认证
    juopyter notebook --certfile=mycert.pem --keyfile mykey.key # 指向生成文件
    

    然后修改配置文件,~/.jupyter/jupyter_notebook_config.py

    c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem' #指向之前生成文件的路径
    c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key'
    

    之后如果和tmux配合一起来使用的话,就可以设置一个一直运行的jupyter notebook服务器端,之后可以随时从任何地方很方便的登录了。

    更多关于,jupyter notebook远程设置查看这里

    2. Tmux多终端工作,暂时离线继续工作

    在最开始使用远程端的时候,最蛋疼的事情是,有时候为了同时训练,同时操作文件,结果不得不每次在本地用Ctrl+Alt+T开多个终端,然后ssh过去。很麻烦。即使开了几个窗口,但是来回换来换去也特别麻烦。

    在本地端的话可以用窗口分块来取得很棒的效果,顺便提一下吧。

    sudo apt-get install compizconfig-settings-manager
    

    之后 ccsm,依次选择 Window ManagementGridCorners / Edges会看到设置。

    然后直接ssh远程最大的问题是,每次网络状态不好,突然就掉线了,或者自己不小心把本地计算机关了。然后就会造成broken pipe,立刻断掉,本来在训练的东西又要重头训练起。

    所以就得使用tmux来工作了,首先可以很方便的分窗口,而且可以随时脱离终端,自己去干其他事情,而终端还在继续运行。

    sudo apt-get install tmux
    # session的操作
    tmux #基本使用,进入默认session
    tmux new -s name #创建一个新session名字是name
    tmux a -t name # 连接叫做name的session
    tmux ls # 列出所有session
    tmux kill-session -t name # 删除叫name的session
    
    # 控制键 先按Ctrl+b
    d # 断开当前session连接
    % # 垂直分屏
    " # 水平分屏
    o # 切换小屏幕
    q # 显示屏幕编号
    + num # q之后加数字,切换到num编号屏幕
    x # 关闭当前小屏幕
    

    更多操作查看tmux shortcuts & cheatsheet.

    3. 远程Tensorboard设定

    入了TensorFlow大坑,于是也就要对付它的那些小弟了。比如这个记录报告好帮手,Tensorboard。有了它,妈妈再也不用担心傻傻分不清神经网络里面到底发生了什么了。

    然而,在远程端运行命令tensorboard --logdir log之后, 显示我们只需要去6006端口连接就可以了。打开浏览器,输入IP地址加上端口号。但是,什么都没有!!

    img

    于是就开始找为什么,发现可能是防火墙设置出了问题。但是作为一个合格的linux小白,果然是不会设定。就找到其他的方法了,只需要用ssh的forward就可以把远程的端口接到本地来。

    ssh -L 16006:127.0.0.1:6006 yourname@remote_ip
    

    127.0.0.1就是本地的ip地址。之后只需要在远程打开Tensorboard,之后在本地输入127.0.0.1:16006或者localhost:16006就行了。

    相关文章

      网友评论

        本文标题:笔记本没有GPU肿么办:机器学习远程端实验心得2

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