2016年5月26日 星期四

中文 教學 Google Nature Language Understanding (NLU),SyntaxNet,TensorFlow


此文包含TensorFlow安裝、SyntaxNet安裝,及安裝完成後的簡單測試。


安裝流程:
VirtualBox(Optional) > Ubuntu14.04(MUST) > TensorFlow(MUST) > SyntaxNet(MUST)

1. VirtualBox(Optional),下載及安裝(略
https://www.virtualbox.org/wiki/Downloads


2. Ubuntu14.04,下載及安裝(略
http://www.ubuntu-tw.org/modules/tinyd0/
http://ftp.ubuntu-tw.org/mirror/ubuntu-releases/14.04.4/ubuntu-14.04.4-desktop-amd64.iso


3. TensorFlow,安裝步驟
TensorFlow支援Python 2.7 and Python 3.3+.,但SyntaxNet目前只支援Python 2.7。
3.1. 安裝python 2.7
# Ubuntu/Linux 64-bit 

3.2. 安裝TensorFlow
# Ubuntu/Linux 64-bit, CPU only: 
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html#pip-installation

3.3.Virtualenv (Optional)
若原本有Ubuntu14.04的環境,python也有2.7和3.3兩種版本,才需要安裝Virtualenv。
# Ubuntu/Linux 64-bit 
$ sudo apt-get install python-pip python-dev python-virtualenv

安裝後的設定請看

3.4.測試TensorFlow是否安裝完成
$ python
... 
>>> import tensorflow as tf 
>>> hello = tf.constant('Hello, TensorFlow!') 
>>> sess = tf.Session() 
>>> print(sess.run(hello)) 
Hello, TensorFlow! 
>>> a = tf.constant(10) 
>>> b = tf.constant(32) 
>>> print(sess.run(a + b)) 
42 
>>>
沒有>>>的部份是輸出,輸出正確就表示TensorFlow安裝成功。


4. SyntaxNet,安裝步驟
https://github.com/tensorflow/models/tree/master/syntaxnet#installation
要從Source開始Build,需要安裝
python 2.7(MUST) > bazel(MUST) > swig(MUST) > protobuf(MUST) > asciitree(MUST) > numpy(MUST)

4.1. python 2.7安裝
(在3.1已經安裝過就跳過此步驟)
python 3目前未支援

4.2. bazel, versions 0.2.0 - 0.2.2b, NOT 0.2.3安裝
步驟有點多,請看 here

4.3. swig安裝
$ apt-get install swig

4.4. protobuf, version 3.0.0b2 安裝
protocol buffers, with a version supported by TensorFlow:
檢查protobuf version:
$ pip freeze | grep protobuf

若非3.0.0b2,則更新protobuf version: 
$ pip install -U protobuf==3.0.0b2

4.5. asciitree安裝
to draw parse trees on the console for the demo:
$ pip install asciitree

4.6. numpy,安裝
package for scientific computing:
$ pip install numpy

4.7. SyntaxNet安裝於 ~/hellosn/models/
https://github.com/tensorflow/models/tree/master/syntaxnet#installation
建立hellosn資料夾在~/底下,
clone models資料夾(包含syntaxnet)到hellosn資料夾內,
安裝前先configure,
執行安裝,請耐心等候,因為從Source code開始Build要等好幾個小時。

$ cd ~
$ mkdir hellosn
$ cd hellosn

$ git clone --recursive https://github.com/tensorflow/models.git
$ cd models/syntaxnet/tensorflow

$ ./configure
$ cd ..

$ bazel test syntaxnet/... util/utf8/...

4.8. SyntaxNet,測試
 從command line進行測試,
先切換到~/hellosn/models/syntaxnet,才能順利執行./syntaxnet/demo.sh,否則會有執行路徑的問題。
PS. 真正要執行的sh路徑在 ~/hellosn/models/syntaxnet/syntaxnet/demo.sh
但,要先切換到~/hellosn/models/syntaxnet,再執行 ./syntaxnet/demo.sh,才不會有問題。

依照底下指令執行即可
$ cd ~/hellosn/models/syntaxnet
$ echo 'Bob brought the pizza to Alice.' | ./syntaxnet/demo.sh 



------------------------
有問有答:
Q: Why VirtualBox?
A: 因為使用VM較方便測試。

Q: Why Ubuntu14.04?
A: Linux的OS,一定要選用Ubuntu14.04,不然會有一堆除不完的Error。

Q: Why Tensorflow?
A: 因為SyntaxNet是TensorFlow 上的一個應用,所以要先裝TensorFlow。

Q: Why SyntaxNet?
A: 瞭解最新NLU技術。



---------------------------
官網
https://github.com/tensorflow/models/tree/master/syntaxnet

http://tech2ipo.com/10029880

http://www.ithome.com.tw/news/105908

http://googleresearch.blogspot.tw/2016/05/announcing-syntaxnet-worlds-most.html

2 則留言 :

匿名 提到...

感謝您提供的教學!

成功演出的背後,是千萬次的練習 提到...

一些心得的整理,希望能幫助到有需要的人 :)