zoukankan      html  css  js  c++  java
  • CentOs编译caffe的问题

    按照网上的教程配置好caffe的环境后

    make all -j8

    最后出现

    non-virtual thunk to caffe::BasePrefetchingDataLayer< float > InternalThreadEntry ()

    最后各种查找,google,竟然在http://discuss.cocos2d-x.org/t/error-non-virtual-thunk-to-cocos2d-cclayer-cctouchbegan/9061中一个

    回答中找到了一个回答,是由于多类继承中导致了时间上的问题

    一想,应该是开始用多线程编译的时候出现的,也比较奇怪,在ubuntu14.04 TLS就没有这个问题

    最后将原来编译的全部clean掉,之前有试过用单线程编译,但是忘记了clean,最后导致问题

    make clean

    make all

    就行了

    补充。之前在编译到33%时遇到一个奇葩的问题,caffe-mastersrccaffelayersase_conv_layer.cpp中出现一个类ConvolutionParameter 识别不了

    namespace caffe {

    template <typename Dtype>
    void BaseConvolutionLayer<Dtype>::LayerSetUp(const vector<Blob<Dtype>*>& bottom,
    const vector<Blob<Dtype>*>& top) {
    CHECK_EQ(4, bottom[0]->num_axes()) << "Input must have 4 axes, "
    << "corresponding to (num, channels, height, width)";
    // Configure the kernel size, padding, stride, and inputs.
    ConvolutionParameter conv_param = this->layer_param_.convolution_param();
    CHECK(!conv_param.has_kernel_size() !=
    !(conv_param.has_kernel_h() && conv_param.has_kernel_w()))
    << "Filter size is kernel_size OR kernel_h and kernel_w; not both";
    CHECK(conv_param.has_kernel_size() ||
    (conv_param.has_kernel_h() && conv_param.has_kernel_w()))
    << "For non-square filters both kernel_h and kernel_w are required.";
    CHECK((!conv_param.has_pad() && conv_param.has_pad_h()
    && conv_param.has_pad_w())
    || (!conv_param.has_pad_h() && !conv_param.has_pad_w()))
    << "pad is pad OR pad_h and pad_w are required.";
    CHECK((!conv_param.has_stride() && conv_param.has_stride_h()
    && conv_param.has_stride_w())
    || (!conv_param.has_stride_h() && !conv_param.has_stride_w()))
    << "Stride is stride OR stride_h and stride_w are required.";
    if (conv_param.has_kernel_size()) {
    kernel_h_ = kernel_w_ = conv_param.kernel_size();
    } else {
    kernel_h_ = conv_param.kernel_h();
    kernel_w_ = conv_param.kernel_w();
    }
    CHECK_GT(kernel_h_, 0) << "Filter dimensions cannot be zero.";
    CHECK_GT(kernel_w_, 0) << "Filter dimensions cannot be zero.";
    if (!conv_param.has_pad_h()) {
    pad_h_ = pad_w_ = conv_param.pad();
    } else {
    pad_h_ = conv_param.pad_h();
    pad_w_ = conv_param.pad_w();
    }

    最后定位到将build/caffe/proto/caffe.pb.h拷进/include中就过去了

     

  • 相关阅读:
    javascript教程系列-10.DOM(下)
    javascript教程系列-9.DOM(上)
    javascript教程系列-8.BOM
    javascript教程系列-7.Date对象
    javascript教程系列-6.String类型
    javascript教程系列-5.数组
    Python字符串、元组、列表、字典互相转换的方法
    python 中函数
    python中的字符串 列表 字典
    python 基础 知识
  • 原文地址:https://www.cnblogs.com/Erdos001/p/5225032.html
Copyright © 2011-2022 走看看