Keras+Tensorflow+Jupyter 安装在Docker容器中运行

原创
2016/09/17 22:21
阅读数 1.4W

Keras 安装在Docker容器中运行

将Keras放到Docker+Jupyter中运行,不仅便于安装、兼容性好、容易迁移,而且可以通过Notebook的浏览器界面远程访问。这里介绍将Keras安装在Docker容器中运行的方法和步骤,通过Jupyter Notebook进行容器服务的Python代码编写,通过web浏览器进行远程访问。

先获取一个现成的镜像:

docker pull kaixhin/keras

把这个镜像作为一个容器运行起来:

docker run -it --name keras -p 8880:8888 -v /***/OpenAI:/Users kaixhin/keras
  • -it 选项启动一个交互式的shell,注意退出时容器实例也会退出。
  • --name 容器的名称,建议取一个自己的名称,如果没有,系统将自动给一个。
  • -p 映射端口,8880为外部访问端口,8888为容器内部端口,否则外面主机访问不到服务。
  • -v 上面的/***/OpenAI为自己的本地目录,映射到容器中访问,用于与宿主机的共享数据存放。

查看容器状态:

- 查看所有的镜像:docker images
- 查看运行的容器:docker ps
- 查看所有的容器:docker ps -a

然后,就可以:

  • 退出后重新启动容器:docker start keras
  • 保存当前容器到镜像:docker commit keras openthings/keras

安装Jupyter, 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内核:

python2 -m pip install ipykernel
python2 -m ipykernel install --user

安装Jupyter扩展

Jupyter已经有很多扩展,可以支持很多种开发语言,查看https://github.com/ipython/ipython/wiki

交互界面扩展组件

pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension

安装Scala支持

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的支持

Spark的Jupyter支持已经发展了多个项目,各有侧重,目前代替Spark Shell的功能已经绰绰有余。

#配置Jupyter远程访问

jupyter notebook --generate-config

将生成文件:~/.jupyter/jupyter_notebook_config.py

然后,编辑:

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为外面可访问的主机端口。**

GPU/CUDA支持

要在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
  • 注意:把上面/***/OpenAI改成自己的宿主机目录,是用来做宿主机存储的。

运行的时候如果出错,可能是显卡驱动的原因。参考https://my.oschina.net/u/2306127/blog/748110更新为NVidia的官方驱动后就可以了。

展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部