Ubuntu16.04 + caffe-ssd + [CPU_ONLY] + KITTI 訓練總結


本次訓練主要參考:http://blog.csdn.net/jesse_mx/article/details/65634482

感謝 Jesse_Mx ,幫助了我很多。

 

坑一【openCV未安裝成功】:

  openCV未安裝成功會導致各種莫名的問題,比如:“No module named cv2”問題。

  然而,正確解決openCV安裝問題也不是一路暢通。下面是經過多次失敗個人總結的openCV安裝方法:

  主要參考:

    在Ubuntu中安裝並測試OpenCV http://blog.csdn.net/pengz0807/article/details/49915573

  使用的opencv版本是2.4.10

    其中,CMake 命令改為:

  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

    要改為

sudo sh -c 'echo "/usr/local/lib">/etc/ld.so.conf.d/opencv.conf

  

    解決“No module named cv2”問題:

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)

   

  此時,就需要換配置了。。。。。。。沒其他辦法。。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM