zoukankan      html  css  js  c++  java
  • 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)

       

      此时,就需要换配置了。。。。。。。没其他办法。。。。。。

  • 相关阅读:
    shell的正则表达式
    shell语法
    shell通配符
    shell小命令
    DNS
    CCNA参考链接
    Network problem solving flow chart
    我是一个路由器
    我是一个网卡
    Chrome
  • 原文地址:https://www.cnblogs.com/mhiauge/p/7069102.html
Copyright © 2011-2022 走看看