1. 程式人生 > >ubuntu16 caffe matlab

ubuntu16 caffe matlab

參考

一 .安裝cuda8.0及對應cudnn

cuda下載
cudnn下載

問題

1.編譯cuda 例子失敗

解決:在cuda8.0/Samples/3_Imaging/cudaDecodeGL/findgllib.mk 中把61行
UBUNTU_PKG_NAME = "nvidia-384"改為本機版本
檢視版本命令如下:
cat /proc/driver/nvidia/version

2.cblas.h報錯

./include/caffe/util/mkl_alternate.hpp:14:19: fatal error: cblas.h: 沒有那個檔案或目錄
解決:
由於我的Makefile.config檔案中BLAS為atlas.

在終端輸入:sudo make clean

  sudo apt-get install libatlas-base-dev

 重新進行編譯就好了。

3.hdf5.h報錯

src/caffe/layers/hdf5_data_layer.cu:10:18: fatal error: hdf5.h: 沒有那個檔案或目錄
解決:
參考
修改Makefile.config檔案以下兩行:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/

4.libcaffe.so.1.0.0報錯

/usr/bin/ld: 找不到 -lopenblas
collect2: error: ld returned 1 exit status
Makefile:583: recipe for target ‘.build_release/lib/libcaffe.so.1.0.0’ failed
make: *** [.build_release/lib/libcaffe.so.1.0.0] Error 1

解決:在Makefile.config中把BLAS := oepn改為 BLAS := atlas

二 . matlab安裝及matcaffe配置

安裝

參考

  1. 把iso檔案放在home/
  2. 在home下新建matlab資料夾
    $ cd ~
    $ mkdir matlab
  3. 掛載matlab掛載matlab
    sudo mount -t auto -o loop R2016b_glnxa64_dvd1.iso matlab/
    執行如下程式碼開始安裝
    sudo ./matlab/install
    選擇金鑰啟用,金鑰可readme
  4. 掛載第二個iso
    安裝進行到82%的時候,會彈出一個提示框,說請插入dvd2,這時候我們需要重新開一個終端,把dvd2掛載到matlab資料夾中:
    $ sudo mount -t auto -o loop Linux/R2016b_glnxa64_dvd2.iso matlab/
    然後在對話方塊中點選OK,繼續安裝。完成安裝後取消iso掛載:
    $ umount matlab/
    $ sudo rm -r matlab/ # 刪除空的資料夾
  5. 啟用matlab
    安裝完成後,可以在終端中輸入matlab開啟軟體,如果失敗,只能去安裝位置開啟:
    $ cd /usr/local/MATLAB/R2016b/bin
    $ ./matlab # 如果是第一次執行,建議加sudo
    第一步,先載入啟用檔案license_standalone.lic:

第二步,把Crack資料夾中R2016b/Linux/R2016b/bin/glnxa64四個檔案,複製到/usr/local/MATLAB/R2016b/bin/glnxa64目錄下:

$ sudo cp Crack/R2016b/bin/glnxa64/libcufft.so.7.5.18 /usr/local/MATLAB/R2016b/bin/glnxa64
$ sudo cp Crack/R2016b/bin/glnxa64/libinstutil.so /usr/local/MATLAB/R2016b/bin/glnxa64
$ sudo cp Crack/R2016b/bin/glnxa64/libmwlmgrimpl.so /usr/local/MATLAB/R2016b/bin/glnxa64
$ sudo cp Crack/R2016b/bin/glnxa64/libmwservices.so /usr/local/MATLAB/R2016b/bin/glnxa64

編譯matcaffe

問題

6.1 執行make mattest時可能會碰到下面這個錯誤:
MEX-file ‘/home/zzh/caffe/matlab/+caffe/private/caffe_.mexa64’ 無效:
/usr/local/MATLAB/R2016b/bin/glnxa64/…/…/sys/os/glnxa64/libstdc++.so.6:
version `GLIBCXX_3.4.21’ not found (required by
/home/zzh/caffe/matlab/+caffe/private/caffe_.mexa64)
解決方式是將matlab的libstdc++.so.6連結到系統的庫檔案。

sudo rm /usr/local/MATLAB/R2016b/sys/os/glnxa64/libstdc++.so.6

sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/Matlab/R2016a/sys/os/glnxa64/libstdc++.so.6
mattest出錯

在caffe目錄下的Makefile中

在CXXFLAGS += -MMP -MP下面加 426行

CXXFLAGS += -std=c++11

opencv安裝

cmake . 報錯
解決:
刪除產生的CMakeCache.txt檔案,然後重新執行cmake

rm -r CMakeCache.txt