2017年8月15日 星期二

nvidia-docker 初探

參 https://hub.docker.com/r/nvidia/cuda/

原則上需要使用特製的 docker 版本: https://github.com/NVIDIA/nvidia-docker

不過它已經半年沒有動過了…

根據此文:https://github.com/NVIDIA/nvidia-docker/issues/429

nvidia-docker 近期內應該會上新版,並基於 https://github.com/nvidia/libnvidia-container 以方便 docker 改寫來支援更多平台

2017年8月7日 星期一

syntaxnet 初探

說真的只是要摸個大概水準,不必要真槍實彈的搞,docker 的好現在就讓你知道

參 https://my.oschina.net/dingdayu/blog/1083438

  1. docker run -it tensorflow/syntaxnet bash
  2. cd /opt/tensorflow/syntaxnet
  3. wget http://download.tensorflow.org/models/parsey_universal/Chinese.zip
  4. unzip Chinese.zip
  5. MODEL_DIRECTORY=/opt/tensorflow/syntaxnet/Chinese
  6. echo '第一年住院医师,做阑尾切除手术时,找不到阑尾在何处,你若是他的主治医师,请你告诉他下列何种方法最容易找到阑尾?' | syntaxnet/models/parsey_universal/tokenize_zh.sh $MODEL_DIRECTORY | syntaxnet/models/parsey_universal/parse.sh $MODEL_DIRECTORY

看來要追上 coreNLP 還需要一點時間…

2017年8月4日 星期五

ubuntu 14.04上 docker / anaconda or virtualenv / tensorflow 的安裝

docker

其實我滿驚訝 docker 不是預裝套件的,而更驚的是套件名為 docker.io 而不是 docker!!

安裝方式參 https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-using-the-repository

事後回過頭來看,docker使用的空間還滿驚人的,建議限縮在固定大小的分割,作法分兩步:

  1. 切出分割,設定開機時自動掛載 
  2. 修改docker設定
win10可參考 https://forums.docker.com/t/where-are-images-stored/9794 ,請不要用cmd.exe,只能用powershell
至於我現在所執行的17.06.0穩定版本,在設定的地方已經可以直接設定

anaconda3(or virtualenv , preferred by tensorflow)

這可裝可不裝,要裝當然是裝 anaconda3 ;參 https://www.continuum.io/downloads

基本上都推薦用 *.sh 直接安裝。

conda 的使用可看 https://www.digitalocean.com/community/tutorials/how-to-install-the-anaconda-python-distribution-on-ubuntu-16-04 , 有助於養成好習慣

(至於為何不用 ubuntu 16.04 呢?那又是另外一個浪費我一天生命的故事了 ( ′-`)y-~ (唉..這就是人生哪...))

那執迷不誤要用widnows的捧油,請不要用powershell,只能用cmd.exe(與docker相反,易混淆!!)

cuda

這可裝可不裝,裝了當然是佔空間,但換來較快的速度,載點: https://developer.nvidia.com/cuda-downloads

tensorflow

之後裝 tensorflow,參 https://anaconda.org/conda-forge/tensorflow (人家包好的),或 http://yenlung-blog.logdown.com/posts/1598592 (自己編譯)

win10 + pip3 安裝參 https://www.tensorflow.org/install/install_windows

win10 + anaconda 安裝參 http://darren1231.pixnet.net/blog/post/341911221

心得

說明文件、錯誤訊息都爛到不行,看來是故意想讓人裝不好(誤)

再提供兩個網頁,記得要核實它們說的每一步,tensorflow的錯誤訊息完全、絕對不可信

How to install TensorFlow with GPU support on Windows 10 with Anaconda

Install TensorFlow with GPU for Windows 10

win10 上請愛用 sysdm.cpl ,隨時查核環境變數設定

(裝好後又開始嫌算力不足了…真是個無底洞)

2017年8月3日 星期四

兩個新的windows選項

按Win-Q,輸入"開啟或關閉 W",注意W前面要空一格,點選後...

1.hyper-v選項,有用vmware及docker的話這個切換非常重要

2.linux 雙系統


2017年8月1日 星期二

使用Python進行數據分析 (I) anaconda / ipython / jupyter notebook 的安裝與執行

參考這個非常棒的影片 IPython 安裝與執行(使用Anaconda) - Python 與數據分析| U.camdemy 

完整的課在這裏

這個影片的作者是政大的蔡炎龍老師

這是作者的一個說明網頁  [Python] IPython 的 Notebook 界面

作者的個人網頁  炎龍老師的教學研究網

為何要用它呢? 這位網友說得好:極其方便的紀錄實驗步驟

安裝


就是下載 anaconda 並安裝。值得注意的是,ipython 在新版已改為 jupyter

執行


在命令列下達 jupyter notebook ,會開啟一個瀏覽器的頁籤,顯示所在目錄的內容

更多


darren網友的網誌

不使用 anaconda 的安裝方式


2017年6月28日 星期三

電腦三不五時停止回應,以往都是GoogleUpdateTaskUser,這回是 NvTmMon 搞的鬼





這兩年來至少每個禮拜都會發作個兩次,這回終於(不小心)被我抓到了

其實是在 debug 另一支排程程式時,覺得這裏可能有點線索,於是啟動了工作歷程記錄

剛好又發作一次,看看 log 才發現…

我只能心中送出 WTF+TMD !!! 這幾支程式可惡的地方在於它平常不會有特別的動作。

但是當你執行高 CPU 負載工作時,它似乎會很有興趣的想 "Monitor" 一下,結果機器整個 freeze

將近20~60秒後, windows 的 QueueReporting 接手記錄這個事件,又凍結15秒

關閉 NvTmMon 方式可參考 Disable Nvidia Telemetry tracking on Windows

哼反正要換 OS 了…


2017年6月19日 星期一

使用 perl one liner 進行檔案搜尋取代的流程(SOP)(二)

承接 使用perl one liner進行檔案搜尋取代的流程(SOP) 一文的第 2 步驟,由於使用 one-liner 時如果要進行取代,沒有什麼空間去做額外的判斷,因此在取代字串很可能必需向前參考所找到的 subgroup 。全寫在一行易讀性的確滿不好,但是這是 perl 的簡潔所必需付出的代價。

原理參考:
http://www.perlmonks.org/?node_id=687031
http://perldoc.perl.org/perlretut.html#Non-capturing-groupings

例如想把文字:

**** 67                                                            

取代成

**** 67                                                            :drill:

在 windows 平台上的寫法是像這樣的:

perl -ne "print if s/^(\*+ \d+[ \t]+)?$/eval q{\"$1:drill:\"}/e and defined $1" abc.txt

或是更簡潔一點:

perl -ne "print if s/^(\*+ \d+[ \t]+)?$/q{\"$1:drill:\"}/ee and defined $1" abc.txt

一樣的道理可推到第 3、4 步,但不用去 test 有沒有發生取代:

perl -pe "s/^(\*+ \d+[ \t]+)?$/q{\"$1:drill:\"}/ee" abc.txt

perl -pi -e "s/^(\*+ \d+[ \t]+)?$/q{\"$1:drill:\"}/ee" abc.txt