【问题标题】:how to install py-faster-rcnn on Jetson TX1?如何在 Jetson TX1 上安装 py-faster-rcnn?
【发布时间】:2017-08-08 00:26:59
【问题描述】:

我想在TX1上安装py-faster-rcnn,我跟着https://devtalk.nvidia.com/default/topic/974063/jetson-tx1/caffe-failed-with-py-faster-rcnn-demo-py-on-tx1/,修改了/caffe-fast-rcnn/Makefile和/caffe-fast-rcnn/Makefile.config,但是当我尝试制作时它,问题出现了:

ubuntu@tegra-ubuntu:~/py-faster-rcnn/caffe-fast-rcnn$ make
PROTOC src/caffe/proto/caffe.proto
CXX .build_release/src/caffe/proto/caffe.pb.cc
CXX src/caffe/layer_factory.cpp
In file included from ./include/caffe/util/device_alternate.hpp:40:0,
                 from ./include/caffe/common.hpp:19,
                 from ./include/caffe/blob.hpp:8,
                 from ./include/caffe/layer.hpp:8,
                 from src/caffe/layer_factory.cpp:8:
./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));
                                     ^
./include/caffe/util/cudnn.hpp:15:28: note: in definition of macro 
‘CUDNN_CHECK’
 cudnnStatus_t status = condition; \
                        ^
In file included from ./include/caffe/util/cudnn.hpp:5:0,
                 from ./include/caffe/util/device_alternate.hpp:40,
                 from ./include/caffe/common.hpp:19,
                 from ./include/caffe/blob.hpp:8,
                 from ./include/caffe/layer.hpp:8,
                 from src/caffe/layer_factory.cpp:8:
/usr/include/cudnn.h:803:27: note: declared here
cudnnStatus_t CUDNNWINAPI cudnnSetPooling2dDescriptor(
                       ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetTanHLayer(const 
caffe::LayerParameter&) [with Dtype = double]’:
src/caffe/layer_factory.cpp:237:1: warning: control reaches end of 
non-void function [-Wreturn-type]
}
^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetTanHLayer(const 
caffe::LayerParameter&) [with Dtype = float]’:
src/caffe/layer_factory.cpp:237:1: warning: control reaches end of 
non-void function [-Wreturn-type]
 }
 ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetSoftmaxLayer(const 
caffe::LayerParameter&) [with Dtype = double]’:
src/caffe/layer_factory.cpp:214:1: warning: control reaches end of 
non-void function [-Wreturn-type]
 }
 ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetSoftmaxLayer(const 
caffe::LayerParameter&) [with Dtype = float]’:
src/caffe/layer_factory.cpp:214:1: warning: control reaches end of 
non-void function [-Wreturn-type]
 }
 ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetSigmoidLayer(const  
caffe::LayerParameter&) [with Dtype = double]’:
src/caffe/layer_factory.cpp:191:1: warning: control reaches end of 
non-void function [-Wreturn-type]
 }
 ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetSigmoidLayer(const 
caffe::LayerParameter&) [with Dtype = float]’:
src/caffe/layer_factory.cpp:191:1: warning: control reaches end of 
non-void function [-Wreturn-type]
 }
 ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetReLULayer(const 
caffe::LayerParameter&) [with Dtype = double]’:
src/caffe/layer_factory.cpp:168:1: warning: control reaches end of 
non-void function [-Wreturn-type]
 }
 ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetReLULayer(const 
caffe::LayerParameter&) [with Dtype = float]’:
src/caffe/layer_factory.cpp:168:1: warning: control reaches end of 
non-void function [-Wreturn-type]
 }
 ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetLRNLayer(const 
caffe::LayerParameter&) [with Dtype = double]’:
src/caffe/layer_factory.cpp:145:1: warning: control reaches end of 
non-void function [-Wreturn-type]
 }
 ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetLRNLayer(const 
caffe::LayerParameter&) [with Dtype = float]’:
src/caffe/layer_factory.cpp:145:1: warning: control reaches end of 
non-void function [-Wreturn-type]
 }
 ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetPoolingLayer(const 
caffe::LayerParameter&) [with Dtype = double]’:
src/caffe/layer_factory.cpp:108:1: warning: control reaches end of 
non-void function [-Wreturn-type]
    }
    ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > caffe::GetPoolingLayer(const 
caffe::LayerParameter&) [with Dtype = float]’:
src/caffe/layer_factory.cpp:108:1: warning: control reaches end of 
non-void function [-Wreturn-type]
  }
  ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > 
caffe::GetConvolutionLayer(const caffe::LayerParameter&) [with Dtype = 
double]’:
src/caffe/layer_factory.cpp:71:1: warning: control reaches end of non-
void function [-Wreturn-type]
  }
  ^
src/caffe/layer_factory.cpp: In function 
‘boost::shared_ptr<caffe::Layer<Dtype> > 
caffe::GetConvolutionLayer(const caffe::LayerParameter&) [with Dtype = 
float]’:
src/caffe/layer_factory.cpp:71:1: warning: control reaches end of non-
void function [-Wreturn-type]
  }
  ^
Makefile:564: recipe for target 
'.build_release/src/caffe/layer_factory.o' failed
make: *** [.build_release/src/caffe/layer_factory.o] Error 1

如何解决这个问题? 谢谢

【问题讨论】:

    标签: caffe nvidia pycaffe


    【解决方案1】:

    我解决了,可能是原来的py-faster-rcnn不支持cudnnv5,所以我把下面的文件从/caffe复制到/py-faster-rcnn/caffe-fast-rcnn:

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

    它有效。

    【讨论】:

      【解决方案2】:

      这是一个对我有用的解决方案。

      将 caffe master 分支合并到 caffe-fast-rcnn。

      cd caffe-fast-rcnn  
      git remote add caffe https://github.com/BVLC/caffe.git  
      git fetch caffe  
      git merge -X theirs caffe/master  
      

      合并后将self_.attr("phase") = static_cast&lt;int&gt;(this-&gt;phase_);从include/caffe/layers/python_layer.hpp中移除。

      我从here 得到它。

      【讨论】:

      • 谢谢,我用/caffe文件夹替换了/py-faster-rcnn/caffe-fast-rcnn中对应的文件: 1.include/caffe/util/:cudnn.hp‌​p 2. src/caffe/layers/:cudnn_conv_layer.cu, cudnn_relu_layer.cpp, cudnn_relu_layer.cu, cudnn_sigmoid_layer.cpp, cudnn_sigmoid_layer.cu, cudnn_tanh_layer.cpp, cudnn_tanh_layer.cu 3.include/caffe/layers/:cudnn_relu_layer.hpp.hppudnn_relu_layer_hpp.hppudnn ,cudnn_tanh_layer.hpp,它的工作原理
      猜你喜欢
      • 2016-10-06
      • 2018-06-14
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 2018-11-24
      • 1970-01-01
      相关资源
      最近更新 更多