在深度学习的过程中,我们肯定会遇到一个问题,那就是神经网络太深导致参数过多,自己电脑的CPU带不动,即使带的动也需要非常多的时间,效率很低。
近期我所在的实验室为了解决这个问题,在阿里云租了几台GPU服务器专门来给我们跑代码做实验,实验室里的师兄也帮助我们在PyCharm上配置完毕,但是笔者还是觉得PyCharm在可视化以及修改代码上没有Jupyter Notebook方便(当然如果喜欢PyCharm那种五颜六色高逼格的画风可以无视接下来的内容)。
那么接下来就遇到一个问题,如何在本地电脑上用远程服务器上的Jupyter Notebook。前期也在网上查了很多资料,大部分都是英文的并且不能很好地解决问题,笔者在一番捣鼓之后终于解决了此问题。首先给大家看看最后的结果
文章目录
- 1、操作前提
- 2、连接远程服务器
- 3、生成默认配置文件
- 4、生成秘钥
- 5、修改配置文件
- 6、测试
1、操作前提
在PyCharm上已经可以用远程服务器跑程序,即远程服务器已经装好了Anaconda和cuda。
2、连接远程服务器
- 打开Anaconda Prompt(别的应该也可以,例如git)
- 在里面输入你要连接的服务器
ssh xxxx@xx.xx.xx.xx
- 系统会提示你输入密码
这个地方需要说明一下,输入密码的时候不像我们登录微信QQ这种它会显示密码,这个你不管输入啥,他的光标都不会移动,这是正常现象,不要觉得自己电脑死机了,你就一个个的把密码敲进去按回车就行了。 - 提示你连接服务器成功
并且此时窗口左上角已经变成了你的服务器的名字。 - 这个时候输入jupyter notebook如果没有报错的话,说明这个id已经有人给你配置好了,因为通常一个服务器会被分给好几个人,而且如果有一个人配置好了,用这个id的都不用进行下面的步骤了,直接进入网站输入密码就可以正常使用了。然而现在的情况应该是会报错,所以才有下面的步骤,记住一个id一个人配置好了就可以了哟。
3、生成默认配置文件
在闪光标的地方输入如下代码生成配置文件:
jupyter notebook --generate-config
4、生成秘钥
- 输入 ipython,进入ipyhon命令行
ipython
- 输入
In [1]: from notebook.auth import passwd
In [2]: passwd()
- 这里要求你输入以后登录使用的密码(这个密码和之前登录服务器的密码不是一个意思,这个密码是你配置好了之后第一次登陆jupyter界面它会让你输入的密码),然后生成一个秘钥,然后将秘钥复制随便粘贴到一个什么地方,因为后面会用。
Enter password:
Verify password:
Out[2]: 'sha1:1b4ea9662b35:3e3d6a823d264d466f125a0939623c05e7b66007'
当然上面这个Out[2]是我随便打的,它会根据你输入的密码给你匹配一个。
- 最后输入"exit"退出ipyhon命令行。
5、修改配置文件
- 修改用户主目录下~/.jupyter/jupyter_notebook_config.py文件,输入
vim ~/.jupyter/jupyter_notebook_config.py
- 然后就会进入到一个代码都是蓝色的地方,现在你出的状态是只读状态,不能更改,按一下键盘上的“i”,便可进入修改模式。这个地方需要注意蓝色代码界面不支持鼠标滚轮翻页,只能用电脑小键盘的上下键来控制光标。然后修改下面六个东西,记住一定是六个,别的都别动,动了后面就进不去了,不要问我为什么。。。
- 取消c.NotebookApp.password = ''的注释,并将之前生成的秘钥(那一长串)复制进去。
c.NotebookApp.password = 'sha1:1b4ea9662b35:3e3d6a823d264d466f125a0939623c05e7b66007'
- 取消注释并修改单引号里的为*
c.NotebookApp.ip='*' #×允许任何ip访问
- 取消注释并修改等号后的为False
c.NotebookApp.open_browser = False
- 取消注释并修改等号后数字,最好不要用8888,可以用8891,8892…
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
- 还有一个allow_remote_access之类的一个设置,记得改成True并取消注释,自己改的时候忘记复制代码了就不放代码了,和上面格式类似的一条命令,仔细找一找。
- 最后还有一个allow_root之类的一个设置,j就在上一条的正下面,记得改成True并取消注释,自己改的时候忘记复制代码了就不放代码了,和上面格式类似的一条命令,仔细找一找。
然后就大功告成了,先按一下"Esc"退出修改模型,然后在任意空白的一行输入":wq"或者":wq!"(加一个感叹号是因为有时前面一种可能退不出来,加一个感叹号表示强制退出),退出修改配置文件模式。
以上六点可以说是本文的精华,大家一定要认真找认真改。
6、测试
到这一步可以说所有的操作都完成了,下面就是见证奇迹的时刻了。重复2.5的操作,输入jupyter notebook,如果没有报错而是出现了几条黄色绿色的提示,那么恭喜你成功了。
现在打开我们心爱的浏览器,输入网址"xx,xx,xx,xx:YYYY"(其中xx,xx,xx,xx为我们服务器ip号码@后面的八位,YYYY为5.2中设置的那个端口号码)就可以成功访问远程服务器的jupyter了,然后第一次登陆会让你输入4.3中你设置的password之后就可以愉快的跑代码啦。