服务器怎么运行python,阿里云服务器跑python

  服务器怎么运行python,阿里云服务器跑python

  我已经做了一段时间的深度学习,看了一些论文,跑了一些代码,挖了很多洞,补了很多洞。在这里,我们先总结一下在服务器上运行深度学习代码时的一些常见操作。

  如何连上远程服务器连上服务器

  首先当然要用自己的PC连接服务器。如果你的PC是linux系统,可以通过ssh指令直接远程访问,这里就不详细解释了。接下来主要说PC是windows上的操作。首先,我们想要ssh连接的下一个工具。个人推荐Xshell。打开的界面如下图所示:

  然后我们转到文件-新建,得到下图:

  跟着图中的红色单词走。注意,以上应用场景主要是在你的PC和你的服务器连接的同一个局域网内(通俗点说就是连接同一个wifi)。如果不在同一个局域网,本文就不描述了。

  确认后,会弹出一个会话框。选择新会话的名称并单击Connect,系统会要求您首先在服务器上输入用户名和密码。确认后,将显示以下界面,表示连接成功。

  服务器与本地电脑之间传输文件

  如果你想上传文件到服务器,你可以点击下面红框中的按钮。

  得到

  左边是本地文件,右边是服务器文件。您可以通过拖移两侧的文件来相互传输文件。真的很方便。

  如何让代码在后台运行因为实验室的网络确实不稳定,经常会遇到已经运行了几个小时的代码即将得到结果,但是网络断开,导致与服务器的连接中断,代码自然会停止运行(至于具体原因,你自己看着办)。这真让人心疼。同时,妥妥的康乃馨ssh在执行一个代码的时候,如果不创建一个新的连接,就不能在这个连接上做别的事情,一点都不好。所以,考虑把代码放在服务器的后台。

  第一种 nohup

  首先要做的是

  $ nohuppythontest.py

  完成后,代码将在服务器的后台执行。你的终端看不到运行过程,运行结果(代码运行时打印)会保存在一个生成的nohup.out文件中。

  第二种 screen

  后来接触到screen命令,发现真的很好用,在这里强烈推荐。

  可以简单的认为,有了这个命令,你就可以为不同的任务打开不同的窗口,窗口可以切换。同时,windows和你的会话连接基本没有区别,这样你可以在打开一个连接的同时做多件事情,终端可以看到运行的进程,而代码不会因为断网而停止运行。其常用命令如下:

  Screen -S name #创建一个窗口,并将其命名为$screen -S yolo。

  合适的康乃馨执行上述命令后,会自动跳转到名为yolo的窗口,在这里你可以随心所欲。

  当合适的康乃馨不想停留在这个窗口时,可以通过快捷键Ctrl a D断开这个窗口,返回到连接会话界面。显示如下

  [已从28113.yolo分离]user @ Ubuntu-Super-Server:~/code $

  说明你从yolo window断开连接,回到了会话界面。但是这个断开只是不显示那个窗口,窗口对应的任务在后台运行。

  $screen -S ls #可以查看所有创建的窗口。

  执行上述指令后,出现以下结果,表示创建了两个窗口,可以看到窗口的名称和id。分离表示窗口已断开连接。还是那句话,这里的断开是指相应的任务在后台执行,没有被他显示出来。

  user @ Ubuntu-super-server:~/code $ screen-ls上有屏幕:28475 . SSD(2017年11月27日20: 07: 41)(已分离)28113.yolo (2017年11月27日2017: 57: 26)(已分离)

  如果您想要查看其中一个窗口任务的执行状态,您可以使用以下指令:

  $screen -r ssd #重新连接到yolo窗口并显示其运行过程。

  如果想直接停止一个窗口任务的运行,可以直接杀死id。

  $kill 28475 #终止ssd窗口对应任务的运行,同时杀死该窗口。

  执行上述指令后,查看现有窗口,会发现只剩下名为yolo的窗口。

  user @ Ubuntu-super-server:~/code $ screen-ls上有屏:28113 . yolo(2017 . 11 . 27 19:57:26)(已分离)

  综上所述,screen可以实现后台运行代码的可视化,同时在打开一个会话连接时,可以创建多个窗口来处理不同的任务。用起来也很方便。

  服务器上tensorboard的使用tensorboard对于使用tensorflow的同学来说是一个很好的工具。Tensorboard可以通过下面的命令打开,这个端口可以自己更改。默认值为6006。

  $ tensor board-logdir=log-port=6006

  尴尬,当合适的康乃馨在服务器上执行上述指令时,他会给你一个地址让你在浏览器上打开。但是,在服务器上使用浏览器基本是不可能的!如何将服务器上的信息传输到我自己的电脑上?这时候就需要端口转发了。我们最近通过两种方式实现了这一点:

  第一种 针对win10用户

  大家一定知道2017年win10系统中嵌入了一个linux子系统。首先,我们需要启用这个子系统。具体步骤是:打开所有设置-更新和安全-开发者然后选择下图的开发者模式。

  Win10在执行上述步骤后,会自动下载相关的库和包。下载后,在控制面板中找到程序和功能,然后选择启用或禁用Windows功能,出现以下菜单:

  检查Linux的Windows子系统(测试版),然后重新启动计算机。

  重启电脑后win R进入cmd,然后在dos界面进入bash后会下载相应的组件,可能需要很长时间耐心等待。下载后,只需输入相应的用户名和密码即可。这样,我们就完成了linux子系统在win10上的安装。下次打开,直接通过Win R输入bash就可以了。

  下一步是使用计算机的linux将ssh连接到服务器并转发端口。具体步骤是:

  首先,win R进入bash打开win10自带的linux的子系统,然后在命令行输入以下指令

  $ ssh-L 16006:127 . 0 . 0 . 1:6006 usr @ 192 . 168 . 1 . 115

  解释以上说明。127.0.0.1是自己PC的本地地址(localhost),16006代表localhost),16006,192.168.1.115是服务器的ip地址(同一台服务器和PC在一个局域网内)。usr是想要登录服务器的用户名,6006是服务器上的端口6006。以上所述

  合适的康乃馨建立了上述连接后,在你的xshell建立的会话连接中输入打开tensorboard的指令后,我们在自己的电脑浏览器中输入127.0.0.1:16006或localhost:16006就可以访问服务器上的tensorboard信息。

  第二种 依然是使用xshell

  具体来说,在合适的康乃馨与xshell连接后,点击下面红框中的属性按钮。

  然后在属性中点击SSH下的隧道,得到如下界面

  单击添加:

  将监听端口改为16006(当然也可以是其他,也就是本机的端口),保持目标主机和源主机的localhost不变。目标端口是服务器上打开的tensorboard对应的端口6006,然后点击确定,建立服务器端口16006和自己电脑端口6006之间的转发。然后按照前面的步骤打开tensorboard,在本地浏览器输入127.0.0.1:16006或者localhost:16006就可以访问tensorboard在服务器上的信息,这样xshell真的很好用!

  远程服务器上jupyter notebook的使用jupyter笔记本经常在服务器上使用,输入以下命令即可打开。

  $ jupyter笔记本- port=8888

  这里的默认端口是8888。同样,如果本地PC可以不使用服务器浏览器读取服务器8888端口的信息,也需要建立端口转发。整个过程和tensorboard的设置差不多,只是端口号变了。当端口转发建立时。我们在服务器中输入上述指令,我们将得到以下输出:

  [我23:17:08.227记事本应用程序]将笔记本服务器饼干秘密写入/run/user/1002/Jupyter/Notebook _ cookie _ secret[I 23:17:08.275笔记本app]JupyterLab alpha预览扩展从/首页/余伟/anaconda 3/lib/python 3.6/site-packages/jupyterlabJupyterLab v 0。27 .0已知的标签扩展名:[I 23:17:08.277 token=d 4846 a 751 b 41 bb 288 AC 8 C 38 B1 da 7976 C 0677 b 6 aa 51430705[I 23:17:08.280笔记本app]使用控制-C停止此服务器并关闭所有内核(两次跳过确认)【C 23:17:08.280记事本App】第一次连接时,将此统一资源定位器复制/粘贴到您的浏览器中,使用令牌登录:http://localhost:8888/?token=d 4846 a 751 b 41 bb 288 AC 8 c 38 B1 da 7976 c 0677 b 6 aa 51430705

  需要做的只是将最后一行的地址复制到本地浏览器然后将8888(服务器端口)改为转发的本地端口(如:16006或8888)就可以了。这样我们在自己的电脑上也可以使用服务器上的朱皮特笔记本了,如下图所示。

  当然还有一种方法,详细见这篇文章吧。

  如何在窗户访问人的本质服务器的朱皮特笔记本

  其他常用命令使用如下指令的前提是安装好了显卡的驱动(cuda 1000。00).

  $ CUDA _ VISIBLE _ DEVICES=2 python测试。巴拉圭

  在使用地面动力装置版本的张量流时,跑对应的代码(如果代码中没有明确指定用哪个地面动力装置跑)默认会调用所有的gpu,使用如上命令后可以指定所使用的图形处理器。

  $ nvidia-smi

  执行上述指执行上述指执行上述指执行上述指执行上述指令可以查看服务器上地面动力装置的使用状况。

  2017年11月28日星期二09:20:42- NVIDIA-SMI 384.90驱动程序版本:384.90 - GPU名称持久性-M总线Id显示.易挥发的不可回收物. ECC Fan Temp Perf Pwr:Usage/Cap Memory-Usage GPU-Util Compute m . ============================================================== 0 GeForce GTX TIT.关 00000000:05:00.0开不适用 22% 45C P8 17W/250 w 443 MIB/12204 MIB 0%默认- 1 GeForce GTX山雀.关 00000000:06:00.0关不适用 22% 46C P8 16W/250 w 2mb/12207 MIB 0%默认- 2 GeForce GTX山雀.关 00000000:09:00.0关不适用 22% 42C P8 15W/250 w 2mb/12207 MIB 0%默认- 3 GeForce GTX山雀.关 00000000:0A:00.0关不适用 22% 35C P8 14W/250 w 2mb/12207 MIB 0%默认 - -

  总结一下,上述的种种操作是我反复使用的操作,还是比较实用的。但是本文中的关于嘘和端口转发的内容都有一个前提是自己的个人电脑和服务器都在同一个局域网下,如果不在同一个局域网里上述的操作可能不太适用,需要进行其他的操作,这些是本文中没有提到的

  转http://www。360 doc。com/content/17/1228/08/7669533 _ 717027772。死亡

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: