Ubuntu-16-04-编译-Caffe-SSD
該來的還是要來
之前為了偷懶想到使用 Docker 回避 Caffe SSD 編譯的難題。結果,「天道好輪回,蒼天饒過誰」。Docker 鏡像內無法調用 GUI 顯示以及攝像頭,沒法跑 ssd_pascal_webcam.py 做實時 Object Detection。所以沒辦法又得重新嘗試編譯 Caffe SSD。現在就記錄一下,我在編譯 Caffe SSD 時候遇到的坑。
如果你僅需要訓練出 model 而后移植到別的機器上做推斷的話,你可以直接使用我前一篇文章的方法安裝 Docker,簡單而便捷。「傳送門」
下載源碼
git clone https://github.com/weiliu89/caffe.git cd caffe git checkout ssd # 這一步很重要,不要忘記 # 如果你沒有 git 的話就使用 「sudo apt-get install git」安裝 git 復制代碼依賴安裝
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libopenblas-dev liblapack-dev libatlas-base-devsudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-devsudo apt-get install cmake build-essential 復制代碼# 修改 Makefile.config 文件 cp Makefile.config.example Makefile.config vim Makefile.config 復制代碼# 修改內容如下# 第5行,開啟 cuDNN 如果你不想用 GPU 就別改這個,去掉第8行的 # 以開啟 CPU_ONLY USE_CUDNN := 1# 我沒有選擇開啟 OpenCV # 如果你 CUDA 版本為 9.0 及以上,35 行開始修改如下 CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \-gencode arch=compute_35,code=sm_35 \-gencode arch=compute_50,code=sm_50 \-gencode arch=compute_52,code=sm_52 \-gencode arch=compute_60,code=sm_60 \-gencode arch=compute_61,code=sm_61 \-gencode arch=compute_61,code=compute_61# 57 行 BLAS := open# 101 行 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/# 102 行 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial# 修改好后 :wq 退出并保存 復制代碼# 修改 Makefile vim Makefile 復制代碼# 改動如下# 181 行 LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial# 266 行 LIBRARIES += boost_thread stdc++ boost_regex# 修改好后 :wq 保存并退出 復制代碼開始編譯
開始編譯之前一定要保證你的 protobuf 版本低于3.0。 我使用的版本為 2.6.1
# 使用下面命令查看版本 protoc --version 復制代碼如果你的版本很高,降級過程如下: 首先在這里下載 protobuf 2.6.1。下載完成后放在你想放的任何目錄,然后終端中進入該目錄并執行
tar -zxvf protobuf-2.6.1.tar.gz cd protobuf-2.6.1 ./configure make make check sudo make install # 如果以上 make 命令提示沒有權限,則命令前加 sudo # 完成后檢查 protobuf 版本 protoc --verison # libprotoc 2.6.1 復制代碼# 編譯過程在 Caffe 根目錄下進行 ~/caffe/ make all -j8 make py make test -j8 # 如果提示權限不足,上述命令前均加 sudo # 如果 make py 過程中提示錯誤,嘗試 sudo apt-get install python-numpy 解決# 驗證是否成功 cd python python import caffe # 若未報錯則成功,下一步是添加環境變量 vim ~/.bashrc # 在文件末尾添加如下內容 export PYTHONPATH=/home/ubuntu/work/caffe_ssd/caffe/python:$PYTHONPATH export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}} # :wq 保存退出 source ~/.bashrc 復制代碼結語
大功告成,如何訓練自己的數據集請看我另一篇文章。「傳送門」 如果你有任何疑問,歡迎留言詢問。
參考
blog.csdn.net/yhaolpz/art… github.com/rbgirshick/… stackoverflow.com/questions/3… stackoverflow.com/questions/4… github.com/weiliu89/ca…
轉載于:https://juejin.im/post/5bada59e6fb9a05d2272acc4
總結
以上是生活随笔為你收集整理的Ubuntu-16-04-编译-Caffe-SSD的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 区块链开发公司谈区块链与大数据的关系
- 下一篇: 梦到家中有蛇好吗