022 【深度学习】fast.ai远程jupyter服务器配置(GPU)
这个笔记基于fast.ai第一节课前12分钟的内容,其中说到了在paperspace上租用远程服务器,然后本地打开jupyter notebook。但是其中一些地方说得不清楚,我踩了不少坑,现在把整个流程记录一下。
目的
在远程服务器上配置好jupyter后,我们可以在本地的浏览器上直接使用,交互性好高。尤其对于深度学习用户来说,这样更方便使用GPU。
注册服务器
这里使用的服务器是paperspace,注册的话可以使用这个链接,这样的话同时分享者和注册者都能有10$的奖励:paperspace注册
注册之后登录,进入Machine,点击NEW MACHINE。
配置的话,选择EAST COAST,Ubuntu 16.04。
GPU选择最便宜的即可
内存大小根据自己的需求选择大小,50G基本就够用了,怕不够的话可以选100G,也不贵。下面的Options中,取消Auto Snapshot,选中Public IP。必须有public ip,这样本地才能访问服务器。
之后填写信用卡信息(这个必须有),下面的优惠码填写:FASTAI3BDG
,会有15$的奖励。结束后点击右边的CREATE YOUR PAPERSPACE。
下面显示ready,表示创建成功。点击图标进入服务器的终端,paperspace有提供网页版终端,使用还是比较方便的。
fast.ai 环境配置
在终端输入:curl http://files.fast.ai/setup/paperspace | bash
。这个命令会自己安装fast.ai课程中用到的python环境和数据,我们就不需要自己配置了。这个过程比较漫长,等全部结束后,重新启动一下远程服务器,方便我们使用GPU。重启按钮就在页面上。
jupyter notebook配置
进入服务器端的terminal,输入jupyter notebook --generate-config
,这个命令会创建一个配置文件,路径为~/.jupyter/jupyter_notebook_config.py.
这里我直接覆盖了原先的配置文件,相当于把原来的配置文件格式化了。接着在terminal输入:jupyter notebook password
。按提示输入密码。这里我输入happy
作为密码。
提示说这个密码已经写到jupyter_notebook_config.json这个文件里了。这个密码我们要在之后用到,所以查看一下密码是什么:
可以看到密码是:
sha1:4693716e5ce7:143967349efff46b606cc34f68a78c55b5b9feb8
创建证书:
mkdir cert
cd cert
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem
然后使用vi直接编辑jupyter_notebook_config.py
文件,下面是我的设定内容:
# Set options for certfile, ip, password, and toggle off
# browser auto-opening
c.NotebookApp.certfile = u'/home/paperspace/cert/mycert.pem'
c.NotebookApp.keyfile = u'/home/paperspace/cert/mykey.key'
# Set ip to '*' to bind on all interfaces (ips) for the public server
c.NotebookApp.ip = '*'
c.NotebookApp.password = u'sha1:4693716e5ce7:143967349efff46b606cc34f68a78c55b5b9feb8'
c.NotebookApp.open_browser = False
# It is a good idea to set a known, fixed port for server access
c.NotebookApp.port = 9999
我们把port固定为9999,即每次使用jupyter,都用这个端口。如果想要在本地的browser上访问jupyter服务器,还需要UFW来允许我们访问端口,在terminal输入,9999表示我们上面设定的端口。
sudo ufw allow 9999
完活了!
下面在远程终端启动jupyter:
之后我们在本地的chrome浏览器上就可以打开jupyter了,在浏览器中输入下面的url:
https://[your public IP]:[your port]
第一次登陆的话,可能提示说不安全,点击高级,继续访问。然后输入密码,这里的密码是我们之前设定的happy。之后就能正常访问jupyter服务器了。