PaddlePaddle

paddlepaddle是百度开源的并行分布式全功能深度学习平台,全名为PArallel Distributed Deep LEarning,开发的动机是百度的工程师将其用在百度的各种产品中。支持CPU/GPU的单机和分布式模式,支持模型并行和数据并行。对于NLP和推荐算法、RNN等都有很好的支持。

安装

这里针对CentOS的操作系统,常用的配置方案是Docker+Ubuntu+PaddlePaddle(这是针对Windows系统的)目前PaddlePaddle似乎还是不支持Windows系统。这里采用一种最为简单的方式进行配置,CentOS+Anaconda3+PaddlPaddle,需要声明的一点是因为很多的第三方库开始宣布不再维护Python2的代码了,所以采用Anaconda3作为主版本。

配置Python2.7环境

因为主板本使用的是Anaconda3,默认为Python3,所以通过conda环境管理机制建立一个使用Python2的版本,具体可参考另一篇文章 post_link “condaGuide” conda包组织管理 ,为了使安装更加迅速,将anaconda的源改为清华大学的开源镜像,参照anaconda下的Anaconda 镜像使用帮助进行修改。

# 这条是示例,不要执行这一条
conda create --name paddlepaddle python=2.7

因为paddlepaddle的依赖比较多,既要Pillow又要OpenCV,还要NLTK等,所以建议使用管理员(这里是指我)预先准备好的配置文件paddlepaddle.yml,然后执行下面的命令来创建conda的环境:

conda env create --file paddlepaddle.yml

通过这种方式就能将paddlepaddle的单机环境配置好了,考虑到这是在服务器上配置的,所以还是建议通过Jupyter Nodebook进行使用。

服务器端开启Jupyter服务

将paddlepaddle的环境配置好了以后可以通过下面的指令来查看:

conda env list

正常情况下会出现:

# conda environments:
#
base                  *  F:\Anaconda3
paddlepaddle             F:\Anaconda3\envs\paddlepaddle

通过指令source activate paddlepaddle激活paddlepaddle的环境,在命令行的最左边会出现一个(paddlepaddle),此时所有python的操作包括包的安装卸载等都仅仅对paddlepaddle这个环境造成影响。因为paddlepaddle仅提供了pip的安装方式,所以再用pip安装paddlepaddle(要在paddlepaddle环境激活的情况下)

pip install paddlepaddle

然后开启jupyter服务

jupyter notebook 文件夹路径

但是通过这种方式开启的服务,一旦退出ssh界面,所有的服务都会被关闭,并且还会存在一个问题是这样开启的jupyter服务不能让远程客户端使用。

Jupyter 开启远程服务

默认情况下,配置文件 ~/.jupyter/jupyter_notebook_config.py并不存在,需要自行创建。使用下列命令生成配置文件:

jupyter notebook --generate-config

如果是 root 用户执行上面的命令,会发生一个问题:

Running as root it not recommended. Use --allow-root to bypass.

提示信息很明显,root 用户执行时需要加上 –allow-root 选项。

jupyter notebook --generate-config --allow-config

执行成功后,会出现下面的信息:

Writing default config to: /root/.jupyter/jupyter_notebook_config.py

生成密码:

从 jupyter notebook 5.0 版本开始,提供了一个命令来设置密码:jupyter notebook password,生成的密码存储在 jupyter_notebook_config.json

$ jupyter notebook password
Enter password:  ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json

不过手动生成也并不麻烦:

除了使用提供的命令,也可以通过手动安装,建议使用的手动安装,因为jupyter notebook password好像更啰嗦。打开 ipython 执行下面内容:

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed 这一串就是要在 jupyter_notebook_config.py添加的密码。

修改配置文件

jupyter_notebook_config.py中找到下面的行,取消注释并修改。

c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口

服务开启

以上设置完以后就可以在服务器上启动jupyter notebook,jupyter notebook, root用户使用jupyter notebook --allow-root。打开 IP:指定的端口, 输入密码就可以访问了。

但是对于那种使用ssh操作服务器的用户而言,应该在后面加上&符号以便让jupyer在后台一直运行。

开启服务之后就可以通过服务器ip:8888这个地址访问jupyter notebook了,打开之后应该就能看到如下场景了。




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Word 排版技巧
  • Black First Won
  • a post with images
  • Alias Method
  • Introduction to LLMs