上一篇中讲了如何在google cloud中创建一个带gpu的实例并用ssh连接, 现在我打算在上面部署jupyter notebook搭建一个深度学习平台, 操作步骤如下:
-
安装cuda和cudnn: 关于cuda和cudnn是什么, 具体可以看这里. 简单来说, cuda让gpu可以用来做计算, cudnn提供gpu计算的加速.
方法一:
下载cuda和cudnn
sudo wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb sudo wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/patches/2/cuda-repo-ubuntu1604-8-0-local-cublas-performance-update_8.0.61-1_amd64-deb sudo wget http://developer.download.nvidia.com/compute/redist/cudnn/v6.0/cudnn-8.0-linux-x64-v6.0.tgz
安装cuda
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-cublas-performance-update_8.0.61-1_amd64.deb sudo apt-get update sudo apt-get upgrade sudo apt-get install cuda=8.0.61-1 sudo add-apt-repository ppa:graphics-drivers/ppa
安装cudnn
tar -xvf cudnn-8.0-linux-x64-v6.0.tgz sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
配置环境变量
sudo vim ~/.bashrc
在打开的文件底部插入(不会用vim编辑器的自行google)
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" export CUDA_HOME=/usr/local/cuda export PATH="$CUDA_HOME/bin:$PATH"
方法二:
执行脚本直接安装.
说明: 把这个.sh文件直接copy到实例的root下然后执行
bash cuda_9.0_cudnn_7.0.sh
-
安装anaconda
wget http://repo.continuum.io/archive/Anaconda3-5.0.0-Linux-x86_64.sh bash Anaconda3-5.0.0-Linux-x86_64.sh
然后终端输入
source ~/.bashrc
使更改生效 -
安装tensorflow-gpu, keras等各种深度学习/机器学习包
pip install tensorflow-gpu==1.4 pip install keras==2.1
后面有安装别的包的需求的话按同样的格式安装就行了,
conda list
可以查看已经安装的包. -
创建虚拟环境: 需要创建虚拟环境的原因是以后不同的开发项目可能需要不同的python环境, 比如这里跑tensorflow-gpu的话最好用python 3.6, 那么我们可以创建一个python3.6的环境
conda create --name py36 python=3.6 anaconda #创建一个名叫py36, python版本为3.6的虚拟环境 source activate py36 #激活py36
后续如果要退出虚拟环境的话, 输入
source deactivate
即可 -
安装jupyter notebook
conda install jupyter
关于具体jupyter的配置, 参看这里, 配置完了终端输入
jupyter notebook
, 看jupyter是否能够正常运行, 如果不能, 把c.NotebookApp.ip='*'
改为c.NotebookApp.ip='0.0.0.0'
, 再输入jupyter notebook
试试, 应该能运行了 -
配置完了要后台运行jupyter的话, 参看这里, 其实就一条命令:
nohup jupyter notebook --allow-root > jupyter.log 2>&1 &
-
现在jupyter应该可以正常运行了, 但是要在本地浏览器打开, 还有最后一步, 那就是开放端口. 因为默认情况下google cloud中实例的8888端口是关闭的, 不能远程连接.
具体更改步骤为
google cloud console - vpc网络 - 防火墙规则 - 创建防火墙规则
, 名字随便写, 比如boom, 优先级为1, 目标: 网络中的所有实例, ip地址范围: 0.0.0.0/0, 协议和端口: 全部允许. 其他直接默认, 然后点击保存就行了.现在创建好了防火墙规则, 但是还没有把规则写入实例中, 最后一步就是点击实例, 进入
VM实例详情 - 修改
, 然后网络标记
添加一个boom
, 最后保存. -
现在jupyter已经完全部署好啦, 在本地浏览器输入
xx.xx.xx.xx:8888
然后按要求输入登录密码就能进入jupyter啦, 这里xx.xx.xx.xx为服务器公网ip, 登录密码为jupyter配置的时候设置的密码.