摘要

Ipython Notebook是基于Web服务模式的,所以我们可以在远程服务器打开IPython服务器,在本地客户端启动IPython Web交互界面,这样可以很方便地操作远程数据。


一、前言

最近打算开始学习深度学习了,因此对一些环境进行了部署。因为使用的是深度学习服务器,非本地环境,所以打算搭建一个Ipython Notebook的远程访问,方便测试代码。Ipython Notebook是基于Web服务模式的,所以我们可以在远程服务器打开IPython服务器,在本地客户端启动IPython Web交互界面,这样可以很方便地操作远程数据。

二、环境介绍

服务器系统是Ubuntu14.04,安装了Anaconda3,并配置了基于Python3的Caffe和Tensorflow的GPU版本。

现将Ipython Notebook远程访问配置过程记录如下。

1、安装Ipython和Ipython Notebook

这个过程很简单,我们先安装Ipython,在Terminal中使用conda命令:

Shell

conda install ipython

接着安装Ipython Notebook:

Shell

conda install ipython notebook

2、创建远程登录密码

在服务器上启动Ipython,生成自定义密码的sha1:


输入passwd()之后,会输入两次密码,这个密码要记住!因为它是远程访问时候需要使用的密码,程序会自动生成一个sha1加密字符串。这个字符串再配置的时候需要用到,因此也需要记下来。

3、创建Ipython Notebook服务器

在Terminal中,创建Ipython Notebook服务器:

Shell

ipython profile create jack

其中,jack为服务器的名字,这里是自定义的,怎么喜欢怎么起。

执行之后,会输出两个地址,告诉我们配置文件放在了哪里。我的配置文件存放的地址如下:


可以看到,配置文件放在了home目录下的.ipython文件夹里。

现在,进入profile_jack文件夹中:

Shell

cd profile_jack

然后查看配置文件:

Shell

ls

一般没有问题的话,会生成ipython_config.py,ipython_kernel_config.py和ipython_notebook_config.py三个文件。

我们重点要关注的是ipython_notebook_config.py这个文件,待会儿我们要修改该文件来配置服务器。不过,有时候这个文件不能生成,这时候我们自己在这里新建即可,使用vim或者gedit。我自己配置的时候就没有生成ipython_notebook_config.py这个文件,我使用vim新建了一个:

Shell

vim ipython_notebook_config.py

4、编写配置文件

接下来就是开始编写配置文件了,在ipython_notebook_config.py文件中添加内容如下:

Shell
c = get_config()
# Kernel config
c.IPKernelApp.pylab = 'inline'
# Notebook config
c.NotebookApp.ip='*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:7a0dc5574cae:b3c09cac34f919c3998c7cc09c77c3fee03dc878'
# It's a good idea to put it on a know,fixed port
c.NotebookApp.port = 6789

c.NotebookApp.port使用6789端口,找一个不怎么使用的端口,防止端口冲突。

c.NotebookApp.password就是之前自动生成的sha1文件,复制过来即可。

至此,我们的配置已经完成。

三、测试

1、服务器开启服务

在远程登录之前,我们需要在服务器上启动这个Ipython Notebook服务器:

Shell

jupyter notebook --config=/home/jackcui/.ipython/profile_jack/ipython_notebook_config.py

位置文件的路径,根据个人的情况进行相应的修改即可。

可以看到,该条命令启动了IPython Notebook服务器,并指向了我们刚刚编辑保存过的配置文件。

如果正常的话,我们会看到这样的输出:


2、客户端浏览器登录

接下来就是可以使用服务器的IP地址和开启的服务端口号登录Ipython Notebook了。

其中216.210.88.145是我服务器的公网IP,6789是服务端口号。我们只需要在客户端浏览器中输入:

Shell

216.210.88.145:6789

输入之后,我们输入最初设置的登录密码,然后就实现了远程登录。


接下来,就可以愉快地开启我们的深度学习之旅了!