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

机器学习远程端实验心得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就行了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 机器学习远程端实验心得1 前一段时间从机器人实验室转到现在的深度学习,自然语言处理实验室。很多东西和以前完全不同,...
    坂本龙一阅读 2,303评论 0 1
  • jupyter notebook作为一个小巧的,使用方便的python编辑器,受到许多初学者的喜爱;考虑到本地配置...
    会口遁的naruto阅读 15,311评论 3 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,992评论 19 139
  • 1、远程连接服务器 远程连接服务器对于管理员来说,是一个很有用的操作。它使得对服务器的管理更为方便。不过方便归方便...
    Zhang21阅读 39,601评论 0 20
  • 有人说:北京是个“大农村”。听到此论调,虽然嘴上不语,心里却不太认可。毕竟,出差来过几次,并未给我留下这样的印像。...
    西风5阅读 413评论 2 5