正規式 (a|b) 和 正規式 [ab] 兩者皆可匹配1個a或1個b,所以匹配效果一樣。 但是兩者的語法不同,表達能力也不同,說明如下: []表示匹配中括號(bracket)內字元集合的一個字元,所以只能匹配1個字元; ()表示匹配小括號(parenthesis)內直槓(vertical bar,|)隔開的任一正規式,所以可能匹配不止1個字元。 例如: 1.正規式 hello 匹配 hello 5個字元 2.正規式 [hello] 匹配 h或e或l或o 任1個字元 3.正規式 (hello) 匹配 hello 5個字元 4.正規式 (hello|world) 匹配 hello 或 world 5個字元 5.正規式 ([hello]|world) 匹配 h或e或l或o 任1個字元 或 world 5個字元 參考: difference b/w [ab] and (a|b) in regex match?
2017年11月8日 星期三
regular expressions (a|b) and [ab] are the same?
2017年11月5日 星期日
Use a jupyter and docker environment for learning tensorflow
想要學習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範例程式的長相如下:
訂閱:
文章 (Atom)