TensorFlow(http://tensorflow.org)是一個深度學習計算引擎,天然是能夠直接安裝運行的,並且能獲得最佳的性能。可是,考慮到機器學習須要安裝大量的軟件,之間必然會帶來軟件管理和版本兼容性問題,並且在集羣中運行更爲複雜,所以不推薦這種方式。python
這裏將介紹幾種能夠在隔離環境中運行TensorFlow的方式,包括:Anaconda、Docker、Jupyter、Kubernetes POD、Kubeflow、Spark DL on MLlib,將更容易管理和擴展到集羣中運行。linux
經過Anaconda來運行Tensorflow的Python調用代碼,優勢是能夠提供一個相對隔離的Python運行環境,避免與其它的python任務產生版本衝突。雖然也能夠經過VirtualEnv完成相似的任務,但Anaconda自帶包管理功能,用起來更爲方便。git
下載和安裝Anaconda:github
echo "" echo "=====================================================================" echo "Downloading Anaconda3 5.1.0 to ~/openthings..." echo "" cd ~/openthings wget -c https://repo.anaconda.com/archive/Anaconda3-5.1.0-Linux-x86_64.sh echo "=====================================================================" echo "Finished.Latest version at https://repo.continuum.io/archive/" echo "More practice at https://my.oschina.net/u/2306127/blog" echo "=====================================================================" echo ""
下載和安裝Miniconda:docker
echo "" echo "=====================================================================" echo "Downloading Miniconda3 4.5.1 to ~/openthings..." echo "" cd ~/openthings wget -c https://repo.continuum.io/miniconda/Miniconda3-4.5.1-Linux-x86_64.sh echo "=====================================================================" echo "Finished.Latest version at https://repo.continuum.io/miniconda/" echo "More practice at https://my.oschina.net/u/2306127/blog" echo "=====================================================================" echo ""
安裝TensorFlow on Anaconda:shell
echo "" echo "=================================================================" echo "Create conda env for Tensorflow, python 3.6.5 ..." conda create --yes -n tensorflow pip python=3.6.5 source activate tensorflow echo "" echo "" echo "=================================================================" echo "Install Tensorflow 1.8.0 with GPU support." pip install --ignore-installed --upgrade \ https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.8.0-cp36-cp36m-linux_x86_64.whl echo "=================================================================" echo "More practice at https://my.oschina.net/u/2306127/blog" echo "More info,Visit https://www.tensorflow.org/install/install_linux " echo "=================================================================" echo ""
而後運行:api
source activate tensorflow
這樣切換Python運行環境,就能夠在Anaconda環境下經過Python執行Tensorflow調用代碼了,固然也能夠安裝Jupyter Notebook之類的組件,而後在瀏覽器裏編寫和運行tensorflow計算任務。瀏覽器
將TensorFlow放到Docker容器中執行,安裝部署都更爲方便,不污染宿主機環境,快速實驗多種版本。bash
echo "" echo "=================================================================" echo "Running Tensorflow in Docker with bash shell." echo "More practice at https://my.oschina.net/u/2306127/blog" echo "Please Visit https://www.tensorflow.org/install/install_linux " echo "=================================================================" echo "" nvidia-docker run -it tensorflow/tensorflow:latest-gpu bash
在Docker中安裝Anaconda和Jupyter。架構
echo "" echo "=================================================================" echo "Running Tensorflow in Docker with jupyter notebook." echo "More practice at https://my.oschina.net/u/2306127/blog" echo "Please Visit https://www.tensorflow.org/install/install_linux " echo "=================================================================" echo "" nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:latest-gpu
而後按照提示的地址,到瀏覽器打開網址 http://localhost:8888,就可使用了。
若是使用Kubernetes/Minikube或者OpenShift,能夠將Tensorflow部署到K8S集羣中,參見:
經過Kubernetes創建TensorFlow機器學習集羣的更佳方式是使用KubeFlow,目前該項目啓動時間不長,還須要進一步完善。使用參考:
因爲TensorFlow只是完成計算功能,經過Spark ML創建深度學習流水線,從而能夠充分利用Spark的分佈式內存和數據處理、數據IO、交互分析等功能,而後進一步將其運行在Kubernetes集羣之中統一調度。