配置windows客户端远程登录深度学习服务器

导师大手一挥给了块闲置的TitanX,加上毕业师兄留下的一台服务器级主机,花一天时间配了个深度学习环境出来。
实验室其他组有好几台这样的服务器。以前看人家测试代码都是自己电脑和服务器两头跑,心想这么搞看起来好土,把主机做好当个远程环境、在本机上run代码不就完了吗。
结果轮到自己配环境,还是查了好多文章。主要是对linux、Jupyter都一窍不通。
肯定有其他更简单美妙的实现方式。这里权做个记录,以免下次再用忘记了。

目标:在Windows上登陆Linux服务器主机,使用主机端的Jupyter Notebook

准备

  • 服务器:配置完毕的Ubuntu(Linux)主机:

    • 版本:16.04LTS
    • 深度学习环境(GPU版):
      • CUDA8.0
      • CuDNNv6
      • Tensorflow-gpu v1.3
      • 其他必备package
    • ssh
    • 接入网络
  • 客户端:你所使用的电脑:

    • 接入网络
    • putty:一个开源带GUI的SSH工具
    • 系统:windows10

服务器配置

配置ssh

# install ssh server
sudo apt-get install openssh-server
# start ssh service
/etc/init.d/ssh start
# check ssh status
sudo service ssh status

查看服务器ip

ifconfig

找到 inet addr 后面的ip地址。

客户端

下载安装 putty,启动。

配置windows客户端远程登录深度学习服务器_第1张图片

输入服务器的ip,端口号填22(SSH服务器的默认端口)。注意存一个session,以免下次还要再输密码。
转到Connection-SSH-Tunnels,填写source port和Destination。前者输入一个本机端口,一般要大于8000;后者输入环路地址+端口号 127.0.0.1:8888。8888是Jupyter的默认端口号,如果这里不是8888,那么远程开启notebook的时候就要指定一个端口号。选项按照默认的local、auto即可。

配置windows客户端远程登录深度学习服务器_第2张图片

依次点击add、open,会弹出远程登录界面;输入服务器的用户名和密码,显示Welcome文字即表明登陆成功。
配置windows客户端远程登录深度学习服务器_第3张图片
然后直接启动 jupyter notebook 就可以使用服务器写notebook了。
指定端口号的写法是
jupyter notebook --port=xxxxx
远程运行notebook不会自动弹出浏览器。在浏览器中输入localhost:yyyy,yyyy是你刚才指定的Source port,这里就是9999,会出现Jupyter的登陆页:
配置windows客户端远程登录深度学习服务器_第4张图片

回到命令行中复制token=后面的字符串,粘贴至此即可。
配置windows客户端远程登录深度学习服务器_第5张图片

结束

走了几行tensorflow发现确实可以很正常地使用,跟本地没有区别。注意到其实在putty登陆之后的操作,跟在服务器的终端上的操作就没有区别了。包括切换环境、更新package都与在服务器上一样。
windows上其他的工具尚未测试,个人觉得putty不是很好用。
在Linux/Mac系统上使用客户端更方便,一行ssh命令就可以了。


Update:

Windows下远程登陆更简单的一种方式是使用虚拟linux环境cygwin。下载后安装openssh,cygwin会自动配置好一个小型的虚拟linux环境,安装完直接从终端登录即可,这样就与Linux使用ssh一样了。
注意两点:

  • 安装Cygwin的时候选一个国内镜像,速度会快很多。我还是选了科大(Ustc)的。
  • 登陆命令里注意加上端口映射,这一点跟上面putty设置的时候是一样的。命令:
    ssh -L xxxx:localhost:yyyy username@ipaddress

你可能感兴趣的:(机器学习/深度学习,疑难杂症)