将Keras放到Docker+Jupyter中运行,不只便于安装、兼容性好、容易迁移,并且能够经过Notebook的浏览器界面远程访问。这里介绍将Keras安装在Docker容器中运行的方法和步骤,经过Jupyter Notebook进行容器服务的Python代码编写,经过web浏览器进行远程访问。html
先获取一个现成的镜像:node
docker pull kaixhin/keras
把这个镜像做为一个容器运行起来:python
docker run -it --name keras -p 8880:8888 -v /***/OpenAI:/Users kaixhin/keras
查看容器状态:git
- 查看全部的镜像:docker images
- 查看运行的容器:docker ps
- 查看全部的容器:docker ps -agithub
而后,就能够:web
sudo apt-get install vim -y sudo apt-get update sudo apt-get upgrade -y sudo apt-get install python3-pip -y sudo pip3 install jupyter ipython3 kernel install
python2 -m pip install ipykernel python2 -m ipykernel install --user
Jupyter已经有不少扩展,能够支持不少种开发语言,查看https://github.com/ipython/ipython/wiki。docker
pip install ipywidgets jupyter nbextension enable --py widgetsnbextension
sudo apt-get install openjdk-7-jre sudo curl -L -o jupyter-scala https://git.io/vrHhi && chmod +x jupyter-scala && ./jupyter-scala && rm -f jupyter-scala
Spark的Jupyter支持已经发展了多个项目,各有侧重,目前代替Spark Shell的功能已经绰绰有余。shell
#配置Jupyter远程访问apache
jupyter notebook --generate-config
将生成文件:~/.jupyter/jupyter_notebook_config.py
vim
而后,编辑:
vim ~/.jupyter/jupyter_notebook_config.py
按“I”键,进入修改状态,修改成以下:
144: c.NotebookApp.ip = '*' 185: c.NotebookApp.open_browser = False
注意,若是不在局域网使用,须要设置密码,参考Jupyter相应的设置:
按“Esc”、“:”键,输入“wq”,保存,退出vim。
** 注意,启动容器时必定要映射端口到宿主机,如前“-p 8880:8888”参数,里面的8888为缺省的Jupyter端口,8880为外面可访问的主机端口。**
要在Docker中启用CUDA,建议使用NVidia-docker容器宿主程序。
##下载NVidia官方驱动
到NVidia官网下载驱动。默认的Linux使用的开源驱动运行nvidia-docker会有问题。
须要的话,安装Cuda专用支持软件。
##安装nvidia-docker
按照https://github.com/NVIDIA/nvidia-docker的说明安装。
# Install nvidia-docker and nvidia-docker-plugin wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.0-rc.3/nvidia-docker_1.0.0.rc.3-1_amd64.deb sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb # Test nvidia-smi nvidia-docker run --rm nvidia/cuda nvidia-smi
##启用CUDA版的Docker容器
启动时应使用CUDA对应的Docker版本。
docker pull kaixhin/cuda-keras nvidia-docker run -it --name keras -p 8880:8888 -v /***/OpenAI:/Users kaixhin/cuda-keras
运行的时候若是出错,多是显卡驱动的缘由。参考http://www.javashuo.com/article/p-hzsztqrc-em.html更新为NVidia的官方驱动后就能够了。