Run QACNN codes on Ubuntu Linux

原本我們打算直接在MacOSX上直接執行QACNN,不過在執行plot2vec.py遇到json.load()載入word_vec/glove.42B.300d.json遇到如Figure 1所示的OSError: [Errno 22] Invalid argument,google之後知道這個是OSX作業系統本身的問題[1],所以我們轉換到Ubuntu Linux平台來執行QACNN。值得注意的是,雖然我們是在MacOSX開Virtual Machine來跑Ubuntu Linux,不過所有的操作都可以正常在原生的Linux上操作。

Figure 1: QACNN on MacOSX suffers from json.load() bug

Anaconda Environment

我們使用Anaconda來安裝tensorflow package,好處是可以透過設定不同anaconda environment在一台主機上模擬不同python版本、不同tensorflow版本做測試。安裝anaconda的方式很簡單:\colon

  1. 到Anaconda的官網[2]下載anaconda,選擇python 3.6的安裝檔。
  2. 在Termial type bash Anaconda3-4.3.1-Linux-x86_64.sh
  3. 設定一些系統變數,安裝完成。

安裝完Anaconda之後,我們要新增一個anaconda環境tensorflow-1.8py3,只要在Terminal type conda create -n tensorflow-1.8py3 pip python=3,安裝完成後,type source activate tensorflow-1.8py3,這時terminal會在指令列最前面出現(tensorflow-1.8py3),代表你的Terminal已經在anaconda環境tensorflow-1.8py3下運作,你做的所有安裝只會更動tensorflow-1.8py3環境的設定,而不會影響到原本的主機。

接下來我們要安裝QACNN需要的module tensorflow, nltk

安裝tensorflow[3]:\colon

(tensorflow-1.8py3)$ pip install --ignore-installed --upgrade tfBinaryURL

其中的tfBinaryURL是指網路上tensorflow binary code的網路路徑(URL),我們要安裝的是python 3.6版本的tensorflow CPU only:\colon

https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.8.0-cp36-cp36m-linux_x86_64.whl

GPU support:\colon

https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.8.0-cp36-cp36m-linux_x86_64.whl

安裝nltk[4]:\colon 在terminal type

conda install -c anaconda nltk

Download MovieQA dataset

  1. 到MovieQA官網申請帳號跟使用許可

  2. download MovieQA_benchmark repo.

  3. download MovieQA source data

Run QACNN

  1. Download QACNN repository[0]

  2. put data given by MovieQA into raw_data folder (qa.json and split_plot/*.split.wiki)

  3. Download GloVe word2vec and put it into word_vec folder

  4. run plot2vec.py, (require raw_data/plot/*.split.wiki and word_vec/glove.42B.300d.json), it generate register.json and output_data/plot/xxxx.wiki.json', Figure 16GB memory required

  5. run qa2vec.py (require word_vec/register.json, raw_data/question/qa.json and word_vec/glove.42B.300d.json), output output_data/question/qa.train.json, output_data/question/qa.val.json and output_data/question/qa.test.json, 16GB memory required
  6. run main.py (20GB memory required)

Figure 2: Flowchart of preprocess stage

Figure 2 顯示出在執行plot2vec.pyqa2vec.py時,所需要input data跟它們output data。

[0] https://github.com/chun5212021202/QACNN

[1] https://stackoverflow.com/questions/41315394/file-size-limit-for-read

[2] http://continuum.io/downloads

[3] https://www.tensorflow.org/install/install_linux#the_url_of_the_tensorflow_python_package

[4] https://anaconda.org/anaconda/nltk

results matching ""

    No results matching ""