资源算法Deeplab_v2_test

Deeplab_v2_test

2020-01-14 | |  43 |   0 |   0

deeplab_v2使用笔记

下载本仓库后

数据:

  • 进入data文件夹,运行dowload_data.sh,将会下载好data并做好数据处理

配置环境:

  • 第1步:安装matio参考博客

  • 第2步:运行deeplab_start.sh 脚本,拉取源码仓库和创建文件夹等一键完成

  • 第3步:编译源码caffe,会遇到一些问题如下:

    1、./include/caffe/common.cuh(9): error: function "atomicAdd(double *, double)" has already been defined

    原因是CUDA 8.0 提供了对atomicAdd函数的定义,但atomicAdd在之前的CUDA toolkit中并未出现,因此一些程序自定义了atomicAdd函数。解决方法:打   开./include/caffe/common.cuh文件,在atomicAdd前添加宏判断即可。如下:

    #if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 600 
    #else
       static __inline__ __device__ double atomicAdd(double* address, double val) 
       { 
          ...
       } 
    #endif

    2、cuDNN v5环境会出现类似下面的接口错误:

    ./include/caffe/util/cudnn.hpp: In function ‘void caffe::cudnn::createPoolingDesc(cudnnPoolingStruct**, caffe::PoolingParameter_PoolMethod, cudnnPoolingMode_t*, int, int, int, int, int, int)’:
    ./include/caffe/util/cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor(cudnnPoolingDescriptor_t, cudnnPoolingMode_t, cudnnNanPropagation_t, int, int, int, int, int, int)’pad_h, pad_w, stride_h, stride_w));

    这是由于所使用的cuDNN版本不一致的导致的,作者配置环境是cuDNN 4.0,但是5.0版本后的cuDNN接口有所变化。

    解决方法 :将以下几个文件用最新BVLC版本的caffe对应文件替换并重新编译

    ./include/caffe/util/cudnn.hpp
    ./include/caffe/layers/cudnn_conv_layer.hpp
    ./include/caffe/layers/cudnn_relu_layer.hpp
    ./include/caffe/layers/cudnn_sigmoid_layer.hpp
    ./include/caffe/layers/cudnn_tanh_layer.hpp
    
    ./src/caffe/layers/cudnn_conv_layer.cpp
    ./src/caffe/layers/cudnn_conv_layer.cu
    ./src/caffe/layers/cudnn_relu_layer.cpp
    ./src/caffe/layers/cudnn_relu_layer.cu
    ./src/caffe/layers/cudnn_sigmoid_layer.cpp
    ./src/caffe/layers/cudnn_sigmoid_layer.cu
    ./src/caffe/layers/cudnn_tanh_layer.cpp
    ./src/caffe/layers/cudnn_tanh_layer.cu

    3、使用cmake编译时会遇到以下错误

    ../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_VarFree'
    ../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_VarReadDataLinear'
    ../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_Open'
    ../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_VarCreate'
    ../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_CreateVer'
    ../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_VarWrite'
    ../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_VarReadInfo'
    ../lib/libcaffe.so.1.0.0-rc3: undefined reference to `Mat_Close'

    解决方法: 下载FindMATIO.cmake.zip文件,解压缩后拷贝到./cmake/Modules目录中。(解压后的文件在文件已经在others里)文件下载路径并添加以下代码至./cmake/Dependencies.cmake文件中

     # ---[ MATIO--add
    find_package(MATIO REQUIRED)
    include_directories(${MATIO_INCLUDE_DIR})
    list(APPEND Caffe_LINKER_LIBS ${MATIO_LIBRARIES})

    这样基本能正常编译caffe了。 以上基本就是整个环境配置的全过程,接下来就是开始把deeplab_v2跑起来了。

    运行run.sh即可。


上一篇:deeplab_v2_pytorch

下一篇:deeplab-public-ver2

用户评价
全部评价

热门资源

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • inferno-boilerplate

    This is a very basic boilerplate example for pe...