2017年9月18日 星期一

推薦一個編譯影像處理 AI 軟體的 docker image

玩 AI 時, 經常需要自己編譯軟體。 很麻煩的是, AI 軟體經常有很長一串相依套件, 其中有些套件很難編譯。 以我最近在玩的影像處理為例, opencv 跟 boost 是兩個很常用到但編譯起來困難重重的套件。 還好找到 docker-cmake-opencv-boost 這個現成的 Dockerfile。 向作者求助兩次之後, 得到 迅速有效的回應。 我就直接拿原作者的 Dockerfile 來用:

mkdir cvbstnpy
wget https://raw.githubusercontent.com/pathtrk/docker-cmake-opencv-boost/numpy/Dockerfile
docker build -t ckhung/cvbstnpy .

製作並上傳了 ckhung/cvbstnpy 這個 docker image。

它的上一層 (parent image) 是 pathtrk/docker-python3-opencv, 再上一層是 python:3.5.3。 用 cat /etc/os-release 看到作業系統版本是 debian jessie。 但是請注意: python 相關套件請 不要用 apt-get 安裝, 而要用 pip 安裝。 因為 which python 看到的是 /usr/local/bin/python , 最終指向 /usr/local/bin/python3.5 也就是說它並不是 apt-get 所安裝的執行檔。 至於 pip, 也可用 which pip 查詢, 看到的也是在同一個目錄下 (/usr/local/bin), 是當初跟著 python:3.5 一起安裝的版本, 所以沒問題。

還有, 編譯時的 /usr/include 也應改成 /usr/local/include、 連結時的 /usr/lib 也應改成 /usr/local/lib 。

如果你想編譯的程式, 所用的 boost 版本 <= 1.62, 而且有用到 boost.numpy, 那麼必須照著 這個說明 小改一下原始碼。

沒有留言:

張貼留言