本次訓練主要參考:http://blog.csdn.net/jesse_mx/article/details/65634482python
感謝 Jesse_Mx ,幫助了我不少。linux
openCV未安裝成功會致使各類莫名的問題,好比:「No module named cv2」問題。git
然而,正確解決openCV安裝問題也不是一路暢通。下面是通過屢次失敗我的總結的openCV安裝方法:github
主要參考:ubuntu
在Ubuntu中安裝並測試OpenCV http://blog.csdn.net/pengz0807/article/details/49915573工具
使用的opencv版本是2.4.10測試
其中,CMake 命令改成:ui
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DWITH_EIGEN=OFF ..
sudo sh -c 'echo"/usr/local/lib">/etc/ld.so.conf.d/opencv.conf
要改成google
sudo sh -c 'echo "/usr/local/lib">/etc/ld.so.conf.d/opencv.conf
解決「No module named cv2」問題:spa
sudo pip install opencv-python
ps:安裝2.x版本的不須要下載 ippicv_linux_20151201.tgz 這個東西,3.x版本的須要
坑二【編譯caffe】:
caffe的編譯須要不少依賴庫,因此安裝過程當中出現各類各樣的奇葩問題是很正常的。下面是caffe安裝:
主要參考網址:參考網址:http://blog.csdn.net/muzilinxi90/article/details/53673184
注意:git clone https://github.com/BVLC/caffe.git 這個會很慢
其中:
for req in $(cat requirements.txt); do pip install $req; done
替換爲:
for req in $(cat requirements.txt); do sudo -H pip install $req --upgrade; done
須要多執行幾回,以確保徹底安裝成功,沒有任何問題!
【解決:ubuntu 沒有/usr/include/hdf5/serial/】
Step 1
在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代碼改成第二行代碼。
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
Step 2
在Makefile文件的第173行,把 hdf5_hl 和hdf5修改成hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代碼改成第二行代碼。
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
【解決:沒有get_image_size工具,提示找不到get_image_size】
那是由於使用的是原版的caffe,須要切換至caffe-ssd分支:
方法一:
git clone https://github.com/weiliu89/caffe.git cd caffe/ git checkout ssd # 切換至分支ssd
方法二:
直接下載github的zip包:https://github.com/weiliu89/caffe/tree/ssd
坑三【CPU_ONLY】:
使用CPU_ONLY模式編譯caffe會遇到更多的問題,因此強烈建議使用GPU模式。
若是出現訓練終端,並報錯相似如下錯誤:
sgd_solver.cpp:106] Iteration 13100,lr = 0.001 math_functions.cpp:250] Check failed: a <= b <0 vs -1.19209e-007> *** Check failure stack trace ***.
那麼能夠找到對應的cpp文件,在對應的位置註釋掉相似下面的代碼。
// CHECK_LE(a, b);
而後從新編譯pycaffe和make all,並從新開始訓練。
【解決:訓練中斷,提示內存不足】
即便改過batch_size的值,在低配置的機器仍是有可能出現如下錯誤:
Check failed: *ptr host allocation of size 184320000 failed *** Check failure stack trace: *** @ 0xb72472b5 google::LogMessage::Fail() @ 0xb724957f google::LogMessage::SendToLog() @ 0xb7246dee google::LogMessage::Flush() @ 0xb724a06d google::LogMessageFatal::~LogMessageFatal() @ 0xb76190b9 caffe::SyncedMemory::mutable_cpu_data() @ 0xb73e8260 caffe::Blob<>::mutable_cpu_data() @ 0xb7505c51 caffe::PoolingLayer<>::Forward_cpu() @ 0xb7413e15 caffe::Net<>::ForwardFromTo() @ 0xb7414062 caffe::Net<>::Forward() @ 0xb7637d51 caffe::Solver<>::Step() @ 0xb76388a9 caffe::Solver<>::Solve() @ 0x8053221 train() @ 0x804eff8 main @ 0xb69e2637 __libc_start_main @ 0x804f8cb (unknown)
此時,就須要換配置了。。。。。。。沒其餘辦法。。。。。。