想要學習Google的開源機器學習套件tensorflow,可以研讀網路上很多Python語言寫的程式範例。 但是,要讓自己的機器能跑得動這些Python寫的tensorflow範例,首先須跨越2個門檻: 1.安裝Python: Python語法分Python2及Python3,IDE介面分jupyter及spyder等,套件管理分anaconda,pip等, 在選擇眾多之下判斷及安裝皆費時。 2.安裝tensorflow: 除了依硬體分成CPU,GPU兩版,軟體也依Windows, Ubuntu, MacOS三種不同作業系統,而分成 virtualenv、pip、anaconda、docker、原始碼等多種安裝法,各有不同安裝步驟及參數要設定。 尤其安裝過程到底是使用 Python2 或 Pyhton3 也很容易因此而發生相容性問題。 以下介紹一個利用docker容器原理,快速建立執行tensoflow環境的作法: 1.安裝 docker 容器管理軟體: https://www.docker.com/community-edition#/download 分成 Windows, Linux, Mac等免費版本,下載安裝合適公用版(community edition) 其中,Windows 10可直接安裝 Docker CE for Windows,內含Windows及Linux兩種核心引擎 若 Windows 非第10版,建議在Linux虛擬機環境下使用Docker,依序安裝如下軟體: VirtualBox Binaries Windows hosts + Ubuntu Desktop + Docker CE for Ubuntu 2.下載 jupyter/tensorflow-notebook 容器映像檔: https://hub.docker.com/r/jupyter/tensorflow-notebook/ 利用如下 docker 指令下載容器映像檔,內含Scipy Notebook + Tensorflow and Keras for Python 3.x (without GPU support) # docker pull jupyter/tensorflow-notebook 註: 本映像檔可由如下github提供的 Dockerfile 從Ubuntu製成 https://github.com/jupyter/docker-stacks/tree/master/tensorflow-notebook https://github.com/jupyter/docker-stacks/tree/master/scipy-notebook https://github.com/jupyter/docker-stacks/tree/master/minimal-notebook https://github.com/jupyter/docker-stacks/tree/master/base-notebook Ubuntu 16.04 (xenial) 3.下載 nfmcclure/tensorflow_cookbook 程式範例: https://github.com/nfmcclure/tensorflow_cookbook 利用如下 git 指令下載範例 > git clone https://github.com/nfmcclure/tensorflow_cookbook.git 或 點選[Download ZIP]下載範例壓縮檔解開 註: TensorFlow Machine Learning Cookbook範例採用 Pyhton3 撰寫 4.啟動執行範例: 假設程式範例位於/home/user/docker/tensorflow_cookbook,網頁連線埠為8080, 則可利用如下指令啟動容器: # docker run -it --rm \ -p 8080:8888 \ -v /home/user/docker/tensorflow_cookbook:/work \ --name tflow jupyter/tensorflow-notebook \ start-notebook.sh --NotebookApp.token='demo' --NotebookApp.notebook_dir='/work' 然後開啟瀏覽器,利用網址 http://localhost:8080,密碼 demo,連到容器,執行tensorflow範例。 註: docker run imagePath 指令可將映像檔imagePath放入容器執行,猶如虛擬機開機一般,其參數說明如下: -it 保留終端機供互動用,按Ctrl-C可結束容器 --rm 容器結束時,容器也自動刪除 -p 8080:8888 將容器內部的8888埠對應到主機的8080埠,供外部使用 -v outerPath:innerPath 將主機的outerPath目錄掛載到容器內部的innerPath目錄,方便內外硬碟資料共享 --name tflow 為容器命名為tflow,方便之後取用 jupyter/tensorflow-notebook 為映像檔在docker hub的標準名稱 start-notebook.sh 為容器啟用後執行的批次檔,主要啟動jupyter notebook,允許預設8888埠網頁連線 --NotebookApp.token='demo' 設定網頁連線密碼 demo,以防外人取用 --NotebookApp.notebook_dir='/work' 設定notebook初始開檔目錄,設為/work可以對應到掛載進來的外部範例目錄,方便取用 註: 利用docker容器啟動包含jupyter notebook及tensorflow環境的容器,執行tensorflow範例程式的長相如下:
2017年11月5日 星期日
Use a jupyter and docker environment for learning tensorflow
訂閱:
張貼留言 (Atom)
1 則留言:
如果須要GPU,建議使用Google Colab的Jupyter環境,可免費使用最多12小時的GPU。
張貼留言