c++ssh连接_ssh远程连接GPU服务器进行深度学习以及常用ssh命令汇总

在我们进行深度学习的科研任务时,我们都会遇到复杂神经网络的训练问题,这时我们都不可避免地需要一块合适的gpu服务器,我认为gpu服务器的好处有两点:一是相对而言便宜一些,虽然很多gpu服务器也是昂贵的价格,我这里推荐下极客云,这应该是我用过最便宜和稳定的服务器了,当然我现在一般用实验室的。二是gpu服务器不同于本地,大型的深度学习项目一般需要训练几天或几周才能完成,而如果训练到一半突然断电,那本地电脑就凉凉了,所以远程挂云gpu还是相当不错的。

一、ssh工具

ssh是远程连接的关键技术,选择合适好用的ssh工具也是相当关键的,我之前也用过xshell等工具。但最后我被实验室师兄推荐了一款超级好用的ssh工具:MobaXterm (官网下载地址)

推荐原因很简单:功能齐全,可视化界面优雅,文件操作方便

1. 主要功能

c++ssh连接_ssh远程连接GPU服务器进行深度学习以及常用ssh命令汇总_第1张图片

我一般就用Session模块足够,可以自动记录密码,非常方便。通常我们远程访问,操作以及使用一台gpu服务器,我们一般需要:username,ip和password。username通常是root,hit或amax等等,ip则是一串数字,10.170.这样的东西,password就是密码啦,只要点击Session模块,我们就能通过ssh添加我们需要访问的gpu主机信息,然后进入服务器即可。

c++ssh连接_ssh远程连接GPU服务器进行深度学习以及常用ssh命令汇总_第2张图片

输入Remote host即可,输入形式为username@serverIP,然后输入密码,就可以访问了,愉快地在云端gpu上进行操作。

2. 文件操作方便

文件操作一直是我一个很难整的事情,但是在这款ssh工具中,可视化效果非常好,可以直接看到gpu的所有目录信息。

c++ssh连接_ssh远程连接GPU服务器进行深度学习以及常用ssh命令汇总_第3张图片

还有文件的上传下载与删除等问题,虽然这些利用命令都能实现,但给出了可视化的解决方案,还是相当不错的。

c++ssh连接_ssh远程连接GPU服务器进行深度学习以及常用ssh命令汇总_第4张图片

二、通过ssh远程访问GPU的Jupyter Notebook

我们编写python经常会遇到jupyter notebook的格式,即ipynb,实际上这也是经常使用的机器学习训练方法,当然做工程pycharm应该更合适。这里我们讲解如何通过ssh远程访问GPU上的Jupyter Notebook,并将它在本地电脑上可视化,分为两个步骤即可。

1. 首先在远程GPU服务器的terminal上启动Jupyter Notebook的服务

在终端输入以下代码:

jupyter notebook --no-browser --port=8889

将远端的Jupyter端口设置为8889.

2. 然后在本地terminal上启动ssh,对接端口

在本地终端cmd输入以下代码:

ssh -N -f -L localhost:8888:localhost:8889 username@serverIP

-N 告诉SSH没有命令要被远程执行; -f 告诉SSH在后台执行; -L 是指定port forwarding的配置,远端端口是8889,本地的端口号的8888。

4. 最后启动本地端口,并输入指令

最后打开浏览器访问:http://localhost:8888/

如果是第一次访问,他会让你输入远程端给出的指令,即token密码,可由ssh工具终端的界面上复制粘贴获得。

c++ssh连接_ssh远程连接GPU服务器进行深度学习以及常用ssh命令汇总_第5张图片

输入token即可远程访问jupyter的内容了。

至于如何使用Pycharm本地训练DL代码,我更新在了专栏另一篇文章中。

阿尔法杨XDU:Pycharm通过ssh远程连接GPU服务器训练深度学习代码​zhuanlan.zhihu.com

三、常用ssh命令汇总

1.目录操作

cd                                      // 前进
cd ..                                   // 后退一级
ls                                      // 查看当前目录下的所有目录和文件
mkdir new_dir                           // 新建名为"new_dir"的文件夹
pwd                                     // 显示当前位置路径

2. 文件操作

touch a.txt                             // 在当前目录下新增文件a.txt
rm a.txt                                // 删除文件a.txt
tar -zcvf test.zip test                 // 文件打包,将文件夹test打包为文件包test.zip
unzip test.zip                          // 解压文件test.zip
mv a.txt b.txt                          // 将文件a.txt重命名为b.txt 
mv /a /b /c                             // 将目录a移动到目录b下,并重新命名为目录c

未完待续...

你可能感兴趣的:(c++ssh连接,java,ssh连接远程服务器,pycharm连接远程服务器)