Caffe + CUDA8.0 + CuDNNv5.1 + OpenCV3.1 + Ubuntu14.04 配置參考文獻java
---- Wang Xiao Anhui University CVPR Group 2017-05-27python
Warning: Please make sure the cuda is installed correctly, before you reboot your PC, or you may stucked and can not open your system. linux
Check in your terminal: nvidia-smic++
If it shown you the following image, it means you have successfully installed cuda and you can reboot your PC safely.
git
wangxiao@AHU:~$ nvidia-smi
Sun Jul 24 13:53:05 2016
+------------------------------------------------------+
| NVIDIA-SMI 352.63 Driver Version: 352.63 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 960M Off | 0000:01:00.0 Off | N/A |
| N/A 46C P8 N/A / N/A | 204MiB / 2047MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1198 G /usr/bin/X 159MiB |
| 0 2025 G compiz 37MiB |
+-----------------------------------------------------------------------------+
wangxiao@AHU:~$
github
Install CUDA until this appeared in your screen ! json
Q1: Some times, it warning you that your Nvidia-driver can not communitcate with your GPU, what can you do ? ubuntu
A1: Well, the only thing you could do is install your cuda in the right way, and reboot your PC. It will be OK. vim
1. 首先安裝 cuda :ruby
sudo apt-get update
sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
sudo apt-get install cuda
2. 安裝基本依賴項:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install python-skimage ipython python-pil python-h5py ipython python-gflags python-yaml
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
3. 設置環境變量:
export PATH=/usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
也能夠在 /etc/profile中進行編輯, 在最後加入:
exportPATH=/usr/local/cuda-8.0/bin:$PATH exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
4. 設置CUDA-7.5 SAMPLES:
cuda-install-samples-8.0.sh ~ cd ~/NVIDIA_CUDA-8.0_Samples cd 1_Utilities/deviceQuery make
進入NVIDIA_CUDA-8.0_Samples 會編譯很長時間,耐心等待。
執行測試代碼: deviceQuery,若是成功結尾會是Result = PASS
此處,可能由於gcc或者g++版本問題,致使沒法編譯。從新安裝一個較老的版本gcc-4.7,而後添加對應的軟鏈接便可編譯:
sudo apt-get install -y gcc-4.7
sudo apt-get install -y g++-4.7
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.7 gcc
sudo rm g++
sudo ln -s g++-4.7 g++
#### check it's success or not ?
ls -al gcc g++
gcc --version
g++ --version
如何安裝多個版本的 gcc 和 g++,而後實現自動切換?
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test sudo apt update sudo update-alternatives --remove-all gcc sudo update-alternatives --remove-all g++ sudo apt-get install -y gcc-4.8 g++-4.8 gcc-4.9 g++-4.9 gcc-5 g++-5 gcc-6 g++-6 gcc-7 g++-7 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 30 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 40 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 30 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 40 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50 sudo update-alternatives --set cc /usr/bin/gcc sudo update-alternatives --set c++ /usr/bin/g++
若是須要 gcc 3.4.6,還能夠安裝這2個包:
gcc34 https://drive.google.com/file/d/0B7S255p3kFXNRTkzQnRSNXZ6UVU/view?usp=sharing
g++34 https://drive.google.com/file/d/0B7S255p3kFXNV3J3bnVoWGNWdG8/view?usp=sharing
下載後用 sudo dpkg -i package_name 安裝,而後執行:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc34 5 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++34 5
切換命令:
sudo update-alternatives --config gcc sudo update-alternatives --config g++
5. 安裝BLAS:
sudo apt-get install libatlas-base-dev
6. 安裝其餘依賴項:
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
7. 安裝opencv:
#[compiler] sudo apt-get install build-essential #[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev #[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
8. 安裝cudnn:
解壓cudnn的包(官網得申請,用網盤搜索能找到最新的),有include和lib64,裏面文件複製到對應/usr/local/cuda/對應文件夾裏
#進到對應文件夾 sudo cp cudnn.h /usr/local/cuda/include/
#進到對應文件夾 sudo cp lib* /usr/local/cuda/lib64/
#進行一次
sudo ldconfig -v
9. 安裝caffe:
Caffe git clone https://github.com/BVLC/caffe.git cp Makefile.config.example Makefile.config 修改Makefile.config,去掉cudnn的註釋,其餘的在當前應用場景可不變。 make all make test make runtest
#####################################################
## 虛擬環境的配置,激活與使用
#####################################################
1. 建立環境而且激活環境:
conda create --name pysot python=3.7 conda activate pysot
2. 安裝 其餘圖像視頻處理中經常使用的依賴項:
conda install numpy pytorch=0.4.1 torchvision cuda90 -c pytorch
conda install numpy pytorch=1.2.0 torchvision cuda90 -c pytorch
conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
pip install opencv-python pyyaml yacs tqdm colorama matplotlib cython tensorboardX
10. 安裝matlab:
Many Tutorials online, we just ignore this part here.
11. can not find "hdf5.h":
# Whatever else you find you need goes here.
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
12. 編譯caffe的時候,提示:
CXX examples/cifar10/convert_cifar_data.cpp
CXX examples/siamese/convert_mnist_siamese_data.cpp
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0-rc3
/usr/bin/ld: cannot find -lhdf5_hl
/usr/bin/ld: cannot find -lhdf5
collect2: error: ld returned 1 exit status
Makefile:563: recipe for target '.build_release/lib/libcaffe.so.1.0.0-rc3' failed
make: *** [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1
wangxiao@GTX980:~/Downloads/caffe-master$
-------------------
怎麼破?
do as issue 12. Change the Makefile.config:
# Whatever else you find you need goes here.
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
13. 安裝 MKL:
MKL與CUDA的環境設置
1. 新建intel_mkl.conf, 並編輯之:
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
2. 新建cuda.conf,並編輯之:
$ sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
/lib
3. 完成lib文件的連接操做,執行:
$ sudo ldconfig –v
15. 可能須要添加的東西:
配置Makefile文件(實現對OpenCV3.x的支持) 查找「Derive include and lib directories」一節,修改「LIBRARIES +=」的最後一行,增長opencv_imgcodecs opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
16. 運行caffe案例:
1. 數據預處理 $ sudo shdata/mnist/get_mnist.sh 2. 重建lmdb文件。Caffe支持三種數據格式輸入網絡,包括Image(.jpg, .png等),leveldb,lmdb,根據本身須要選擇不一樣輸入吧。 $sudo shexamples/mnist/create_mnist.sh 生成mnist-train-lmdb 和 mnist-train-lmdb文件夾,這裏包含了lmdb格式的數據集 注:我執行此命令的時候報告說not in gzformat,後來發現是聯網下載的mnist數據有問題,而後我就去網上了下載了mnist數據集,後在ubuntu上手動解壓的,再執行後面的命令。 3. 訓練mnist $ sudo shexamples/mnist/train_lenet.sh
17. when compile caffe:
1 wangxiao@GTX980:~/Downloads/35attribute_caffe_master_$ make -j8 2 CXX/LD -o .build_release/tools/upgrade_net_proto_binary.bin 3 CXX/LD -o .build_release/tools/upgrade_solver_proto_text.bin 4 CXX/LD -o .build_release/tools/compute_image_mean.bin 5 CXX/LD -o .build_release/tools/caffe.bin 6 CXX/LD -o .build_release/tools/convert_imageset.bin 7 CXX/LD -o .build_release/tools/upgrade_net_proto_text.bin 8 CXX/LD -o .build_release/examples/mnist/convert_mnist_data.bin 9 CXX/LD -o .build_release/tools/extract_features.bin 10 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_ndims' 11 .build_release/lib/libcaffe.so: undefined reference to `H5Fcreate' 12 .build_release/lib/libcaffe.so: undefined reference to `H5check_version' 13 .build_release/lib/libcaffe.so: undefined reference to `H5Lget_name_by_idx' 14 .build_release/lib/libcaffe.so: undefined reference to `google::base::CheckOpMessageBuilder::NewString()' 15 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_double' 16 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_int' 17 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_float' 18 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_float' 19 .build_release/lib/libcaffe.so: undefined reference to `H5Gget_info' 20 .build_release/lib/libcaffe.so: undefined reference to `H5Gopen2' 21 .build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)' 22 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_double' 23 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_string' 24 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_int' 25 .build_release/lib/libcaffe.so: undefined reference to `H5Fclose' 26 .build_release/lib/libcaffe.so: undefined reference to `H5Gclose' 27 .build_release/lib/libcaffe.so: undefined reference to `H5LTfind_dataset' 28 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<double>*>::pop(std::string const&)' 29 .build_release/lib/libcaffe.so: undefined reference to `H5Lexists' 30 .build_release/lib/libcaffe.so: undefined reference to `H5Gcreate2' 31 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_info' 32 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_string' 33 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<float>*>::pop(std::string const&)' 34 .build_release/lib/libcaffe.so: undefined reference to `H5Fopen' 35 collect2: error: ld returned 1 exit status 36 Makefile:616: recipe for target '.build_release/tools/caffe.bin' failed 37 make: *** [.build_release/tools/caffe.bin] Error 1
38 make: *** Waiting for unfinished jobs.... 39 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_ndims' 40 .build_release/lib/libcaffe.so: undefined reference to `H5Fcreate' 41 .build_release/lib/libcaffe.so: undefined reference to `H5check_version' 42 .build_release/lib/libcaffe.so: undefined reference to `H5Lget_name_by_idx' 43 .build_release/lib/libcaffe.so: undefined reference to `google::base::CheckOpMessageBuilder::NewString()' 44 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_double' 45 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_int' 46 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_float' 47 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_float' 48 .build_release/lib/libcaffe.so: undefined reference to `H5Gget_info' 49 .build_release/lib/libcaffe.so: undefined reference to `H5Gopen2' 50 .build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)' 51 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_double' 52 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_string' 53 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_int' 54 .build_release/lib/libcaffe.so: undefined reference to `H5Fclose' 55 .build_release/lib/libcaffe.so: undefined reference to `H5Gclose' 56 .build_release/lib/libcaffe.so: undefined reference to `H5LTfind_dataset' 57 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<double>*>::pop(std::string const&)' 58 .build_release/lib/libcaffe.so: undefined reference to `H5Lexists' 59 .build_release/lib/libcaffe.so: undefined reference to `H5Gcreate2' 60 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_info' 61 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_string' 62 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<float>*>::pop(std::string const&)' 63 .build_release/lib/libcaffe.so: undefined reference to `H5Fopen' 64 collect2: error: ld returned 1 exit status 65 Makefile:616: recipe for target '.build_release/tools/upgrade_net_proto_text.bin' failed 66 make: *** [.build_release/tools/upgrade_net_proto_text.bin] Error 1
67 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_ndims' 68 .build_release/lib/libcaffe.so: undefined reference to `H5Fcreate' 69 .build_release/lib/libcaffe.so: undefined reference to `H5check_version' 70 .build_release/lib/libcaffe.so: undefined reference to `H5Lget_name_by_idx' 71 .build_release/lib/libcaffe.so: undefined reference to `google::base::CheckOpMessageBuilder::NewString()' 72 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_double' 73 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_int' 74 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_float' 75 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_float' 76 .build_release/lib/libcaffe.so: undefined reference to `H5Gget_info' 77 .build_release/lib/libcaffe.so: undefined reference to `H5Gopen2' 78 .build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)' 79 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_double' 80 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_string' 81 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_int' 82 .build_release/lib/libcaffe.so: undefined reference to `H5Fclose' 83 .build_release/lib/libcaffe.so: undefined reference to `H5Gclose' 84 .build_release/lib/libcaffe.so: undefined reference to `H5LTfind_dataset' 85 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<double>*>::pop(std::string const&)' 86 .build_release/lib/libcaffe.so: undefined reference to `H5Lexists' 87 .build_release/lib/libcaffe.so: undefined reference to `H5Gcreate2' 88 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_info' 89 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_string' 90 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<float>*>::pop(std::string const&)' 91 .build_release/lib/libcaffe.so: undefined reference to `H5Fopen' 92 collect2: error: ld returned 1 exit status 93 Makefile:616: recipe for target '.build_release/tools/upgrade_solver_proto_text.bin' failed 94 make: *** [.build_release/tools/upgrade_solver_proto_text.bin] Error 1
95 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_ndims' 96 .build_release/lib/libcaffe.so: undefined reference to `H5Fcreate' 97 .build_release/lib/libcaffe.so: undefined reference to `H5check_version' 98 .build_release/lib/libcaffe.so: undefined reference to `H5Lget_name_by_idx' 99 .build_release/lib/libcaffe.so: undefined reference to `google::base::CheckOpMessageBuilder::NewString()' 100 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_double' 101 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_int' 102 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_float' 103 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_float' 104 .build_release/lib/libcaffe.so: undefined reference to `H5Gget_info' 105 .build_release/lib/libcaffe.so: undefined reference to `H5Gopen2' 106 .build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)' 107 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_double' 108 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_string' 109 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_int' 110 .build_release/lib/libcaffe.so: undefined reference to `H5Fclose' 111 .build_release/lib/libcaffe.so: undefined reference to `H5Gclose' 112 .build_release/lib/libcaffe.so: undefined reference to `H5LTfind_dataset' 113 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<double>*>::pop(std::string const&)' 114 .build_release/lib/libcaffe.so: undefined reference to `H5Lexists' 115 .build_release/lib/libcaffe.so: undefined reference to `H5Gcreate2' 116 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_info' 117 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_string' 118 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<float>*>::pop(std::string const&)' 119 .build_release/lib/libcaffe.so: undefined reference to `H5Fopen' 120 collect2: error: ld returned 1 exit status 121 Makefile:616: recipe for target '.build_release/tools/convert_imageset.bin' failed 122 make: *** [.build_release/tools/convert_imageset.bin] Error 1
123 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_ndims' 124 .build_release/lib/libcaffe.so: undefined reference to `H5Fcreate' 125 .build_release/lib/libcaffe.so: undefined reference to `H5check_version' 126 .build_release/lib/libcaffe.so: undefined reference to `H5Lget_name_by_idx' 127 .build_release/lib/libcaffe.so: undefined reference to `google::base::CheckOpMessageBuilder::NewString()' 128 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_double' 129 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_int' 130 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_float' 131 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_float' 132 .build_release/lib/libcaffe.so: undefined reference to `H5Gget_info' 133 .build_release/lib/libcaffe.so: undefined reference to `H5Gopen2' 134 .build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)' 135 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_double' 136 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_string' 137 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_int' 138 .build_release/lib/libcaffe.so: undefined reference to `H5Fclose' 139 .build_release/lib/libcaffe.so: undefined reference to `H5Gclose' 140 .build_release/lib/libcaffe.so: undefined reference to `H5LTfind_dataset' 141 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<double>*>::pop(std::string const&)' 142 .build_release/lib/libcaffe.so: undefined reference to `H5Lexists' 143 .build_release/lib/libcaffe.so: undefined reference to `H5Gcreate2' 144 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_info' 145 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_string' 146 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<float>*>::pop(std::string const&)' 147 .build_release/lib/libcaffe.so: undefined reference to `H5Fopen' 148 collect2: error: ld returned 1 exit status 149 Makefile:621: recipe for target '.build_release/examples/mnist/convert_mnist_data.bin' failed 150 make: *** [.build_release/examples/mnist/convert_mnist_data.bin] Error 1
151 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_ndims' 152 .build_release/lib/libcaffe.so: undefined reference to `H5Fcreate' 153 .build_release/lib/libcaffe.so: undefined reference to `H5check_version' 154 .build_release/lib/libcaffe.so: undefined reference to `H5Lget_name_by_idx' 155 .build_release/lib/libcaffe.so: undefined reference to `google::base::CheckOpMessageBuilder::NewString()' 156 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_double' 157 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_int' 158 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_float' 159 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_float' 160 .build_release/lib/libcaffe.so: undefined reference to `H5Gget_info' 161 .build_release/lib/libcaffe.so: undefined reference to `H5Gopen2' 162 .build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)' 163 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_double' 164 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_string' 165 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_int' 166 .build_release/lib/libcaffe.so: undefined reference to `H5Fclose' 167 .build_release/lib/libcaffe.so: undefined reference to `H5Gclose' 168 .build_release/lib/libcaffe.so: undefined reference to `H5LTfind_dataset' 169 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<double>*>::pop(std::string const&)' 170 .build_release/lib/libcaffe.so: undefined reference to `H5Lexists' 171 .build_release/lib/libcaffe.so: undefined reference to `H5Gcreate2' 172 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_info' 173 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_string' 174 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<float>*>::pop(std::string const&)' 175 .build_release/lib/libcaffe.so: undefined reference to `H5Fopen' 176 collect2: error: ld returned 1 exit status 177 Makefile:616: recipe for target '.build_release/tools/extract_features.bin' failed 178 make: *** [.build_release/tools/extract_features.bin] Error 1
179 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_ndims' 180 .build_release/lib/libcaffe.so: undefined reference to `H5Fcreate' 181 .build_release/lib/libcaffe.so: undefined reference to `H5check_version' 182 .build_release/lib/libcaffe.so: undefined reference to `H5Lget_name_by_idx' 183 .build_release/lib/libcaffe.so: undefined reference to `google::base::CheckOpMessageBuilder::NewString()' 184 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_double' 185 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_int' 186 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_float' 187 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_float' 188 .build_release/lib/libcaffe.so: undefined reference to `H5Gget_info' 189 .build_release/lib/libcaffe.so: undefined reference to `H5Gopen2' 190 .build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)' 191 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_double' 192 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_string' 193 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_int' 194 .build_release/lib/libcaffe.so: undefined reference to `H5Fclose' 195 .build_release/lib/libcaffe.so: undefined reference to `H5Gclose' 196 .build_release/lib/libcaffe.so: undefined reference to `H5LTfind_dataset' 197 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<double>*>::pop(std::string const&)' 198 .build_release/lib/libcaffe.so: undefined reference to `H5Lexists' 199 .build_release/lib/libcaffe.so: undefined reference to `H5Gcreate2' 200 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_info' 201 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_string' 202 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<float>*>::pop(std::string const&)' 203 .build_release/lib/libcaffe.so: undefined reference to `H5Fopen' 204 collect2: error: ld returned 1 exit status 205 Makefile:616: recipe for target '.build_release/tools/compute_image_mean.bin' failed 206 make: *** [.build_release/tools/compute_image_mean.bin] Error 1
207 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_ndims' 208 .build_release/lib/libcaffe.so: undefined reference to `H5Fcreate' 209 .build_release/lib/libcaffe.so: undefined reference to `H5check_version' 210 .build_release/lib/libcaffe.so: undefined reference to `H5Lget_name_by_idx' 211 .build_release/lib/libcaffe.so: undefined reference to `google::base::CheckOpMessageBuilder::NewString()' 212 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_double' 213 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_int' 214 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_float' 215 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_float' 216 .build_release/lib/libcaffe.so: undefined reference to `H5Gget_info' 217 .build_release/lib/libcaffe.so: undefined reference to `H5Gopen2' 218 .build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)' 219 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_double' 220 .build_release/lib/libcaffe.so: undefined reference to `H5LTmake_dataset_string' 221 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_int' 222 .build_release/lib/libcaffe.so: undefined reference to `H5Fclose' 223 .build_release/lib/libcaffe.so: undefined reference to `H5Gclose' 224 .build_release/lib/libcaffe.so: undefined reference to `H5LTfind_dataset' 225 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<double>*>::pop(std::string const&)' 226 .build_release/lib/libcaffe.so: undefined reference to `H5Lexists' 227 .build_release/lib/libcaffe.so: undefined reference to `H5Gcreate2' 228 .build_release/lib/libcaffe.so: undefined reference to `H5LTget_dataset_info' 229 .build_release/lib/libcaffe.so: undefined reference to `H5LTread_dataset_string' 230 .build_release/lib/libcaffe.so: undefined reference to `caffe::BlockingQueue<caffe::Batch<float>*>::pop(std::string const&)' 231 .build_release/lib/libcaffe.so: undefined reference to `H5Fopen' 232 collect2: error: ld returned 1 exit status 233 Makefile:616: recipe for target '.build_release/tools/upgrade_net_proto_binary.bin' failed 234 make: *** [.build_release/tools/upgrade_net_proto_binary.bin] Error 1
235 wangxiao@GTX980:~/Downloads/35attribute_caffe_master_$
what the fuck :::
...
OK, 改成ubuntu Kylic版本了,哎,仍是麒麟好用啊。。。坑逼
18. when use the matlab demo from caffe file:
after make matcaffe, and it warning me it's OK. and when run the demo, it shown me the errors like this:
Invalid MEX-file '/home/wangxiao/Downloads/caltech_256_caffe_master/matlab/+caffe/private/caffe_.mexa64': libcudart.so.7.5: cannot open shared object file: No such file or directory
What should I do for this ??
You must remember the following operation, because it really worked well ! Yeah !!!
error while loading shared libraries: libcudart.so.7.5: cannot open shared object file: No such file or directory
32-bit: sudo ldconfig /usr/local/cuda/lib
64-bit: sudo ldconfig /usr/local/cuda/lib64
今天悲劇的發現, 執行了 64-bit 以後出現錯誤:
wangxiao@AHU:~/Downloads/caffe-master$ sudo ldconfig /usr/local/cuda/lib64
/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.5 is not a symbolic link
不知道問題何在啊?怎麼解決???
##############################################
## 有時候須要更新軟連接:
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7.5
sudo ln -s libcudnn.so.7.5.48 libcudnn.so.7.5
sudo ln -s libcudnn.so.7.5 libcudnn.so
19. When compile caffe, some times it always shown you a mistake like this:
CXX src/caffe/util/db_leveldb.cpp
In file included from src/caffe/util/signal_handler.cpp:7:0:
./include/caffe/util/signal_handler.h:4:34: fatal error: caffe/proto/caffe.pb.h: No such file or directory
#include "caffe/proto/caffe.pb.h"
^
compilation terminated.
The bug is not reproducible, so it is likely a hardware or OS problem.
make: *** [.build_release/src/caffe/util/signal_handler.o] Error 1
make: *** Waiting for unfinished jobs....
^Cmake: *** [.build_release/src/caffe/util/math_functions.o] Interrupt
make: *** [.build_release/src/caffe/net.o] Interrupt
make: *** wait: No child processes. Stop.
Do you how to solve this problem ??? Just becase the lost of the file : caffe.pb.h, and this file is actually generated from the process of compile. Do the following operation will help you solve the problem:
Just input make in your terminal: make
Then, press ctrl+c to stop it, and input: make -j8
All process will be normal now !
Here is a figure to help you understand this all process.
20. You also maybe meet a error like this:
CXX/LD -o .build_release/tools/net_speed_benchmark.bin
.build_release/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/upgrade_solver_proto_text.bin] Error 1
make: *** Waiting for unfinished jobs....
.build_release/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/extract_features.bin] Error 1
.build_release/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/caffe.bin] Error 1
.build_release/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/upgrade_net_proto_binary.bin] Error 1
.build_release/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/convert_imageset.bin] Error 1
.build_release/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/compute_image_mean.bin] Error 1
.build_release/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/upgrade_net_proto_text.bin] Error 1
Just add a word in you Makefile, following:
LIBRARIES += opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
21. 利用caffe 的matlab藉口提取feature的時候:碰到了這個問題:怎麼破 ?
Undefined function 'caffe_' for input arguments of type 'char'.
Error in caffe.set_mode_gpu (line 5)
caffe_('set_mode_gpu');
Error in Copy_of_Label_all_ (line 11)
caffe.set_mode_gpu();
答:由於沒有編譯matlab接口,即:make matcaffe 執行這句,完了以後,你就發現,yeah,能夠了。。。
22. protobuf 的下載與安裝
from: https://github.com/protocolbuffers/protobuf/tree/master/src
You can get the source by "git clone" our git repository. Make sure you have also cloned the submodules and generated the configure script (skip this if you are using a release .tar.gz or .zip package): $ git clone https://github.com/protocolbuffers/protobuf.git $ cd protobuf $ git submodule update --init --recursive $ ./autogen.sh To build and install the C++ Protocol Buffer runtime and the Protocol Buffer compiler (protoc) execute the following: $ ./configure $ make $ make check $ sudo make install $ sudo ldconfig # refresh shared library cache.
23. 將 wide residual network 的 python 腳本生成 其對應的 protext 文件,出現問題:
wangxiao@AHU:~/Downloads/caffe-master$ python ./python/wide_residual_network.py
Traceback (most recent call last):
File "./python/wide_residual_network.py", line 62, in <module>
make_net(tgt_file)
File "./python/wide_residual_network.py", line 58, in make_net
print(resnet_cifar(depth=16, widen_factor=8), file=f)
File "./python/wide_residual_network.py", line 53, in resnet_cifar
return to_proto(loss, acc)
File "/home/wangxiao/Downloads/caffe-master/python/caffe/net_spec.py", line 50, in to_proto
top.fn._to_proto(layers, {}, autonames)
--------------------- 相似這種轉換 ------- 此處略寫 -----------------------
inp._to_proto(layers, names, autonames)
File "/home/wangxiao/Downloads/caffe-master/python/caffe/net_spec.py", line 97, in _to_proto
return self.fn._to_proto(layers, names, autonames)
File "/home/wangxiao/Downloads/caffe-master/python/caffe/net_spec.py", line 136, in _to_proto
inp._to_proto(layers, names, autonames)
AttributeError: 'NoneType' object has no attribute '_to_proto'
wangxiao@AHU:~/Downloads/caffe-master$
搜到一個答案,可是不知所云:
http://stackoverflow.com/questions/15232832/python-regex-attributeerror-nonetype-object-has-no-attribute-groups
哎 坑啊 ...
24. 要用 CUDNN,由於訓練速度會提高好幾倍!!!
25. 編譯 caffe 出現:
XX src/caffe/layers/cudnn_sigmoid_layer.cpp
CXX src/caffe/layers/deconv_layer.cpp
src/caffe/net.cpp:8:18: fatal error: hdf5.h: No such file or directory
#include "hdf5.h"
^
compilation terminated.
Makefile:572: recipe for target '.build_release/src/caffe/net.o' failed
make: *** [.build_release/src/caffe/net.o] Error 1
make: *** Waiting for unfinished jobs....
wangxiao@csdl:~/pedestrian_attributes/43_attribute_caffe_master_$ ^C
wangxiao@csdl:~/pedestrian_attributes/43_attribute_caffe_master_$
那麼,怎麼解決這個問題?添加兩行路徑:
/usr/include/hdf5/serial
/usr/lib/x86_64-linux-gnu/hdf5/serial
26. caffe 配置 python 環境變量: 參考博文:http://blog.csdn.net/yingyujianmo/article/details/51014440
添加環境變量 vim ~/.bashrc
將export PYTHONPATH=/home/wanghh/caffe/python:$PYTHONPATH
添加到文件中。 source ~/.bashrc
這樣,在其餘地方打開python,也能夠import caffe了。
27. caffe 配置 python, some times, it shown us: no module named caffe:
at this moment, maybe you should add those codes into your file, like :
then, you can check it again. It will be OK.
28. when install new softwares, I find this error:
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
kate : Depends: kdelibs4c2a (>= 4:3.5.9) but it is not going to be installed
Depends: libqt3-mt (>= 3:3.3.8b) but it is not going to be installed
Recommends: kregexpeditor but it is not installable
kscope : Depends: kdelibs4c2a (>= 4:3.5.7-1) but it is not going to be installed
Depends: libaudio2 but it is not going to be installed
Depends: libqt3-mt (>= 3:3.3.8really3.3.7) but it is not going to be installed
Depends: cscope but it is not going to be installed
Depends: exuberant-ctags but it is not going to be installed
Depends: graphviz but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
try this operation on the terminal, it will solve this issue:
==>> $: apt-get -f install
29. when compile matconvnet, it shown me error like this:
>> vl_compilenn('enableGpu', true, 'cudamethod','nvcc')
Warning: Function labindex has the same name as a MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.
Warning: Function numlabs has the same name as a MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.
Warning: Function labindex has the same name as a MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.
> In path at 109
In addpath at 86
In vl_compilenn at 144
Warning: Function numlabs has the same name as a MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.
> In path at 109
In addpath at 86
In vl_compilenn at 144
Warning: Function labindex has the same name as a MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.
> In path at 109
In addpath at 86
In vl_compilenn at 144
Warning: Function numlabs has the same name as a MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.
> In path at 109
In addpath at 86
In vl_compilenn at 144
vl_compilenn: CUDA: MEX config file: '/home/wangxiao/Downloads/siamese-fc-master/matconvnet-1.0-beta20/matlab/src/config/mex_CUDA_glnxa64.xml'
Building with 'g++'.
MEX completed successfully.
Building with 'g++'.
MEX completed successfully.
Building with 'g++'.
MEX completed successfully.
Building with 'g++'.
MEX completed successfully.
Building with 'g++'.
MEX completed successfully.
Building with 'g++'.
MEX completed successfully.
Building with 'g++'.
MEX completed successfully.
Building with 'g++'.
MEX completed successfully.
Building with 'g++'.
MEX completed successfully.
/home/wangxiao/Downloads/siamese-fc-master/matconvnet-1.0-beta20/matlab/src/bits/impl/pooling_gpu.cu(163): error: function "atomicAdd(double *, double)" has already been defined
1 error detected in the compilation of "/tmp/tmpxft_000034d7_00000000-7_pooling_gpu.cpp1.ii".
Error using vl_compilenn>nvcc_compile (line 521)
Command "/usr/local/cuda-8.0/bin/nvcc" -c "/home/wangxiao/Downloads/siamese-fc-master/matconvnet-1.0-beta20/matlab/src/bits/impl/pooling_gpu.cu" -DNDEBUG -DENABLE_GPU
-DENABLE_DOUBLE -gencode=arch=compute_61,code=\"sm_61,compute_61\" -I"/usr/local/MATLAB/R2014b/extern/include"
-I"/usr/local/MATLAB/R2014b/toolbox/distcomp/gpu/extern/include" -gencode=arch=compute_61,code=\"sm_61,compute_61\" -Xcompiler -fPIC -o
"/home/wangxiao/Downloads/siamese-fc-master/matconvnet-1.0-beta20/matlab/mex/.build/bits/impl/pooling_gpu.o" failed.
Error in vl_compilenn (line 466)
nvcc_compile(opts, srcs{i}, objfile, flags.nvcc) ;
==>> Update your MatConvnet version. It indeed contain such errors in this version.
30. json_parser_read.hpp:257:264: error: ‘type name’ declared as function returning an array escape
when compile caffe file in SSD, it shown me the error like this:
json_parser_read.hpp:257:264: error: ‘type name’ declared as function returning an array escape
Just like this blog said, you need do this:
修改json_parser_read.hpp:打開文件夾Document,選中computer,在搜索json_parser_read.hpp,找到該文件的路徑以後用以下命令打開
sudo gedit /usr/include/boost/property_tree/detail/json_parser_read.hpp
將257行開始的escape代碼段註釋掉便可,以下:
/*escape = chset_p(detail::widen<Ch>("\"\\/bfnrt").c_str()) [typename Context::a_escape(self.c)] | 'u' >> uint_parser<unsigned long, 16, 4, 4>() [typename Context::a_unicode(self.c)] ;*/
31. ImportError: No module named caffe.proto
wangxiao@AHU:~/Documents/caffe$ ./data/VOC0712/create_data.sh
Traceback (most recent call last):
File "/home/wangxiao/Documents/caffe/data/VOC0712/../../scripts/create_annoset.py", line 7, in <module>
from caffe.proto import caffe_pb2
ImportError: No module named caffe.proto
Traceback (most recent call last):
File "/home/wangxiao/Documents/caffe/data/VOC0712/../../scripts/create_annoset.py", line 7, in <module>
from caffe.proto import caffe_pb2
ImportError: No module named caffe.proto
Solution: export PYTHONPATH=/home/wangxiao/Documents/caffe/python:$PYTHONPATH
then, run: ./data/VOC0712/create_data.sh
it will be OK.
32. ImportError: No Module named caffe:
import sys
sys.path.append("/(你的caffe-master路徑)/caffe-master/python")
sys.path.append("/(你的caffe-master路徑)/caffe-master/python/caffe")
33. OpenCV Error:
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, file /io/opencv/modules/highgui/src/window.cpp, line 583 Traceback (most recent call last): File "./show_tracker_vot.py", line 30, in <module> objTrackerVis.trackAll(0, 1) File "/home/wangxiao/Downloads/goTURN-tensorflow/PY-GOTURN-master/src/tracker_manager.py", line 55, in trackAll cv2.imshow('input', sMatImage) cv2.error: /io/opencv/modules/highgui/src/window.cpp:583: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvShowImage
==>> do the following opeartions:
1.Remove installed OpenCV version to avoid mess up later
pip3 uninstall opencv-python
2.Lower you python version to 3.5(current version 3.6 has different problems with conda, which we will use to install OpenCV)
conda install python=3.5
3.Finally use conda, to install working version of OpenCV
conda install -c menpo opencv3
sudo apt-get install libgtk-3-dev
34. when running a tensorflow code, it shown me a error:
ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory
Failed to load the native TensorFlow runtime.
==>> well, this is because the version of tensorflow. Currently, the most recent tensorflow is version 1.3.0, and it need cudnn v6+. but my machine still use the cudnn v5.1.
Thus the error occured. You can sovle this problem by install tensorflow v1.2.0, as following:
sudo pip install --user tensorflow==1.2.0
35. How to install keras with specific version, not the newest one ???
sudo pip install keras==1.2
36. ankit@Ankit:~/caffe$ make all
CXX/LD -o .build_release/tools/convert_imageset.bin
.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)' .build_release/lib/libcaffe.so: undefined reference to
cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator >&, std::vector<int, std::allocator > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/convert_imageset.bin] Error 1
Solution:
1. add "opencv_imgcodecs" in Makefile.(opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs)
2. delete all the file in build(rm -rf ./build/*) before "make all".
37. new issues about new version of cuda:
CXX src/caffe/parallel.cpp
NVCC src/caffe/solvers/adadelta_solver.cu
nvcc fatal : Unsupported gpu architecture 'compute_20'
Makefile:576: recipe for target '.build_release/cuda/src/caffe/solvers/adadelta_solver.o' failed
make: *** [.build_release/cuda/src/caffe/solvers/adadelta_solver.o] Error 1
make: *** 正在等待未完成的任務....
==>> SOlution: from: https://askubuntu.com/questions/960238/nvcc-fatal-unsupported-gpu-architecture-compute-20
38. when compile caffe on our linux server, following errors occured:
/usr/include/c++/7/bits/exception_ptr.h(90): error: use of a local type to declare a function
/usr/include/c++/7/bits/exception_ptr.h(90): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(91): error: use of a local type to declare a function
/usr/include/c++/7/bits/exception_ptr.h(93): error: namespace "__cxxabiv1::std" has no member "make_exception_ptr"
/usr/include/c++/7/bits/exception_ptr.h(93): error: a template friend declaration cannot be declared in a local class
/usr/include/c++/7/bits/exception_ptr.h(93): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(96): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(98): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(101): error: incomplete type is not allowed
/usr/include/c++/7/bits/exception_ptr.h(101): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(122): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(132): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(149): error: use of a local type to declare a function
/usr/include/c++/7/bits/exception_ptr.h(150): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(153): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(158): error: use of a local type to declare a function
/usr/include/c++/7/bits/exception_ptr.h(159): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(162): error: use of a local type to declare a function
/usr/include/c++/7/bits/exception_ptr.h(163): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(166): error: use of a local type to declare a function
/usr/include/c++/7/bits/exception_ptr.h(167): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(179): error: expected a ";"
/usr/include/c++/7/bits/exception_ptr.h(214): error: expected a ";"
/usr/include/c++/7/bits/move.h(46): error: identifier "constexpr" is undefined
/usr/include/c++/7/bits/move.h(46): error: "_Tp" is not a function or static data member
/usr/include/c++/7/bits/move.h(51): error: expected a ";"
/usr/include/c++/7/type_traits(71): error: identifier "constexpr" is undefined
/usr/include/c++/7/type_traits(71): error: template parameter "_Tp" may not be redeclared in this scope
/usr/include/c++/7/type_traits(71): error: expected a ";"
/usr/include/c++/7/type_traits(72): error: member "__cxxabiv1::std::integral_constant<_Tp, __v>::_Tp" is not a type name
/usr/include/c++/7/type_traits(73): error: member "__cxxabiv1::std::integral_constant<_Tp, __v>::_Tp" is not a type name
/usr/include/c++/7/type_traits(74): error: identifier "constexpr" is undefined
/usr/include/c++/7/type_traits(74): error: expected a ";"
/usr/include/c++/7/type_traits(84): error: identifier "constexpr" is undefined
/usr/include/c++/7/type_traits(84): error: "_Tp" is not a function or static data member
/usr/include/c++/7/type_traits(93): error: expected a declaration
/usr/include/c++/7/type_traits(93): error: expected a ";"
/usr/include/c++/7/type_traits(126): error: space required between adjacent ">" delimiters of nested template argument lists (">>" is the right shift operator)
/usr/include/c++/7/type_traits(154): error: __bool_constant is not a template
/usr/include/c++/7/type_traits(154): error: not a class or struct name
/usr/include/c++/7/type_traits(245): error: identifier "char16_t" is undefined
/usr/include/c++/7/type_traits(249): error: identifier "char32_t" is undefined
/usr/include/c++/7/type_traits(249): error: class "__cxxabiv1::std::__is_integral_helper<<error-type>>" has already been defined
/usr/include/c++/7/type_traits(362): error: namespace "__cxxabiv1::std" has no member "size_t"
/usr/include/c++/7/type_traits(463): error: expected a ">"
/usr/include/c++/7/type_traits(467): error: expected a ">"
/usr/include/c++/7/type_traits(475): error: expected a ">"
/usr/include/c++/7/type_traits(479): error: expected a ">"
/usr/include/c++/7/type_traits(487): error: expected a ">"
/usr/include/c++/7/type_traits(491): error: expected a ">"
/usr/include/c++/7/type_traits(499): error: expected a ">"
/usr/include/c++/7/type_traits(503): error: expected a ">"
/usr/include/c++/7/type_traits(511): error: expected a ">"
/usr/include/c++/7/type_traits(515): error: expected a ">"
/usr/include/c++/7/type_traits(523): error: expected a ">"
/usr/include/c++/7/type_traits(527): error: expected a ">"
/usr/include/c++/7/type_traits(535): error: expected a ">"
/usr/include/c++/7/type_traits(539): error: expected a ">"
/usr/include/c++/7/type_traits(547): error: expected a ">"
/usr/include/c++/7/type_traits(551): error: expected a ">"
/usr/include/c++/7/type_traits(561): error: namespace "__cxxabiv1::std" has no member "nullptr_t"
/usr/include/c++/7/type_traits(582): error: space required between adjacent ">" delimiters of nested template argument lists (">>" is the right shift operator)
/usr/include/c++/7/type_traits(588): error: space required between adjacent ">" delimiters of nested template argument lists (">>" is the right shift operator)
/usr/include/c++/7/type_traits(595): error: space required between adjacent ">" delimiters of nested template argument lists (">>" is the right shift operator)
/usr/include/c++/7/type_traits(602): error: space required between adjacent ">" delimiters of nested template argument lists (">>" is the right shift operator)
/usr/include/c++/7/type_traits(612): error: space required between adjacent ">" delimiters of nested template argument lists (">>" is the right shift operator)
/usr/include/c++/7/type_traits(638): error: space required between adjacent ">" delimiters of nested template argument lists (">>" is the right shift operator)
/usr/include/c++/7/type_traits(748): error: space required between adjacent ">" delimiters of nested template argument lists (">>" is the right shift operator)
/usr/include/c++/7/type_traits(762): error: expected a ";"
/usr/include/c++/7/type_traits(777): error: space required between adjacent ">" delimiters of nested template argument lists (">>" is the right shift operator)
/usr/include/c++/7/type_traits(787): error: expected a ")"
/usr/include/c++/7/type_traits(798): error: an explicit template argument list is not allowed on this declaration
/usr/include/c++/7/type_traits(798): error: expected a type specifier
/usr/include/c++/7/type_traits(798): error: function returning function is not allowed
/usr/include/c++/7/type_traits(798): error: expected a ";"
/usr/include/c++/7/type_traits(804): error: space required between adjacent ">" delimiters of nested template argument lists (">>" is the right shift operator)
Error limit reached.
100 errors detected in the compilation of "/tmp/tmpxft_000038a7_00000000-13_conv_layer.compute_50.cpp1.ii".
Compilation terminated.
make: *** [Makefile:578: .build_release/cuda/src/caffe/layers/conv_layer.o] Error 1
==>> still have no answer yet.
39. Caffe-SSD compile error:
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
/usr/include/boost/property_tree/detail/json_parser_read.hpp: In constructor ‘boost::property_tree::json_parser::json_grammar<Ptree>::definition<Scanner>::definition(const boost::property_tree::json_parser::json_grammar<Ptree>&)’:
/usr/include/boost/property_tree/detail/json_parser_read.hpp:257:264: error: ‘type name’ declared as function returning an array
escape
^
/usr/include/boost/property_tree/detail/json_parser_read.hpp:257:264: error: ‘type name’ declared as function returning an array
make: *** [.build_release/cuda/src/caffe/layers/detection_output_layer.o] Error 1
Answer from: https://github.com/BVLC/caffe/issues/4957
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test $ sudo apt-get update $ sudo apt-get install gcc-5 g++-5 mona@pascal:~$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.1-2ubuntu1~14.04' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5
--enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=gcc4-compatible --disable-libstdcxx-dual-abi --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
--enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 5.4.1 20160904 (Ubuntu 5.4.1-2ubuntu1~14.04)
At this moment, you already installed gcc and g++ V5 successfully. You just remove the old super-link and add the new one:
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-5 gcc
sudo rm g++
sudo ln -s g++-5 g++
40. 各類版本的 cudnn,百度雲下載:
連接: https://pan.baidu.com/s/1j_DzNZ2Lux95TQDjPQhoBQ 密碼: sjrc
41.