tensorflow 之 bazel安裝 & 使用
目錄:
1,機器學習 & MR
深度學習在推薦領域的應用2,tensorflow 安轉與使用
3,工具安裝
4, 工具包的使用
XGboost & LibLinear (git)
寫在文章前面:
當一個人從一個領域跨到另一個領域的時候會面臨很大的改變,理論不同了,方法變換了,遇到這樣挑戰的時候,很多人都需要長時間去適應和習慣;這種領域的轉換其實有三種,一種是理論的改變,一種是方法論的改變,另一種,則是理論和方法論都發生了改變。
1,方法論的變化,重要的應對在於做,多做,多總結,從熟悉到習慣,從習慣到精通;
2,理論的變化,重要的應對在於悟,多想,多問自己為什麼,嘗試內心的突破,打破自己既有的思維桎梏。
3,有時候覺得方法論更重要,那是因為自己對工具的使用還不熟練,當對工具使用熟練後,會覺得理論更重要,但是在接觸到更深的理論後發現,還有更多的工具需要掌握,於是方法論又變得重要,總之,人生就是在知和行中間不斷的震盪上行~~~。
扯遠了,收回來
0,前言:一些相關連線
http://www.cnblogs.com/Jack47/p/install-bazel-on-redhat-enterprise-5.html (彎路,bazel需要JDK8以上支援,裡面很雜)
https://github.com/bazelbuild/bazel/releases ----- 下載sh檔案安裝(OK)
https://sonic.gitbooks.io/bazel/chapter1.html ----- JDK & Bazel安裝(OK,感覺也非常的亂)
http://blog.csdn.net/zhangweijiqn/article/details/53200081 (OK,不錯的完整的安裝JDK --> Bazel --> TF的過程)
1,bazel安裝的淚水
(1)安裝google的bazel來編譯:
chmod +x PATH_TO_INSTALL.SH ./PATH_TO_INSTALL.SH --user 直接安裝如果失敗,可以嘗試從原始碼安裝bazel:2,使用bazel執行tensorflow的textsum模型
https://github.com/tensorflow/models/tree/master/textsum
How To Run
依賴:Prerequisite: install TensorFlow and Bazel.
第一步:
# cd to your workspace # 1. Clone the textsum code to your workspace 'textsum' directory. # 2. Create an empty 'WORKSPACE' file in your workspace. # 3. Move the train/eval/test data to your workspace 'data' directory. # In the following example, I named the data training-*, test-*, etc. # If your data files have different names, update the --data_path. # If you don't have data but want to try out the model, copy the toy # data from the textsum/data/data to the data/ directory in the workspace.
上面大意是: 建立工作目錄mkdir test_dir; 建立空白檔案 touch WORKSPACE; 在test_dir中建立data資料目錄(存放training-*, test-*資料,vocab); copy訓練資料和測試資料到data目錄
第二步: $ bazel build -c opt --config=cuda textsum/...
# Run the training.
$ bazel-bin/textsum/seq2seq_attention \
--mode=train \
--article_key=article \ ###
--abstract_key=abstract \ ###
--data_path=data/training-* \ ### 更改對應的訓練資料檔案路徑
--vocab_path=data/vocab \ ### 類似於dic
--log_root=textsum/log_root \
--train_dir=textsum/log_root/train
# Run the eval. Try to avoid running on the same machine as training.
$ bazel-bin/textsum/seq2seq_attention \
--mode=eval \
--article_key=article \
--abstract_key=abstract \
--data_path=data/validation-* \
--vocab_path=data/vocab \
--log_root=textsum/log_root \
--eval_dir=textsum/log_root/eval
# Run the decode. Run it when the most is mostly converged.
$ bazel-bin/textsum/seq2seq_attention \
--mode=decode \
--article_key=article \
--abstract_key=abstract \
--data_path=data/test-* \
--vocab_path=data/vocab \
--log_root=textsum/log_root \
--decode_dir=textsum/log_root/decode \
--beam_size=8
2,使用bazel編譯環境:
第一步:建立WORKSPACE檔案:
touch WORKSPACE
第二步:建立一個BUILD檔案:vim BUILD
genrule(
name = "hello",
outs = ["hello_world.txt"],
cmd = "echo Hello World > [email protected]",
)
第三步:
bazel build :hello ### 注意build 後面有一個空格
最後結果如下:
lrwxrwxrwx 1 root root 110 4月 5 20:30 bazel-bin -> /root/.cache/bazel/_bazel_root/606cbeb4ca65a774eeb20cb68b5d2d4b/test_bazel/bazel-out/local_linux-fastbuild/bin
lrwxrwxrwx 1 root root 115 4月 5 20:30 bazel-genfiles -> /root/.cache/bazel/_bazel_root/606cbeb4ca65a774eeb20cb68b5d2d4b/test_bazel/bazel-out/local_linux-fastbuild/genfiles
lrwxrwxrwx 1 root root 84 4月 5 20:30 bazel-out -> /root/.cache/bazel/_bazel_root/606cbeb4ca65a774eeb20cb68b5d2d4b/test_bazel/bazel-out
lrwxrwxrwx 1 root root 74 4月 5 20:30 bazel-test_bazel -> /root/.cache/bazel/_bazel_root/606cbeb4ca65a774eeb20cb68b5d2d4b/test_bazel
lrwxrwxrwx 1 root root 115 4月 5 20:30 bazel-testlogs -> /root/.cache/bazel/_bazel_root/606cbeb4ca65a774eeb20cb68b5d2d4b/test_bazel/bazel-out/local_linux-fastbuild/testlogs
-rwxr-xr-x 1 root root 92 4月 5 20:22 BUILD
-rw-r--r-- 1 root root 0 4月 5 19:15 WORKSPACE
bazel相關命令: https://bazel.build/versions/master/docs/bazel-user-manual.html
http://blog.csdn.net/rockingdingo/article/details/55224282