將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的官方驅動後就能夠了。