ubuntu16 caffe matlab
一 .安裝cuda8.0及對應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配置
安裝
- 把iso檔案放在home/
- 在home下新建matlab資料夾
$ cd ~
$ mkdir matlab - 掛載matlab掛載matlab
sudo mount -t auto -o loop R2016b_glnxa64_dvd1.iso matlab/
執行如下程式碼開始安裝
sudo ./matlab/install
選擇金鑰啟用,金鑰可readme - 掛載第二個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/ # 刪除空的資料夾 - 啟用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