天天看點

C++ little errors , Big problem

------------------------------------------------------------------------------------------------------------------------------------------------------

Q1. compile caffe .cpp file ,   come out an error :

d302@d302-MS-7816-04:~/wangxiao/spl-caffe-master$ make -j8

NVCC src/caffe/layers/euclidean_loss_layer.cu

src/caffe/layers/euclidean_loss_layer.cu(43): error: a value of type "const float *" cannot be used to initialize an entity of type "float *"

          detected during instantiation of "void caffe::EuclideanLossLayer<Dtype>::Backward_gpu(const std::vector<caffe::Blob<Dtype> *, std::allocator<caffe::Blob<Dtype> *>> &, const std::vector<__nv_bool, std::allocator<__nv_bool>> &, const std::vector<caffe::Blob<Dtype> *, std::allocator<caffe::Blob<Dtype> *>> &) [with Dtype=float]"

(105): here

the original code is :

Solution 1: No solution, because the char* can not give to const char*, and the value of const char* can not be changed .  and in my problem, we don't need change the predict score at all.

Q2. when trained a AlexNet caffe model, and use the Matlab Interface to extract Features or predicted Scores , However it tell me errors like the following :

C++ little errors , Big problem

d302@d302-MS-7816-04:~$ matlab

libprotobuf ERROR google/protobuf/text_format.cc:172] Error parsing text-format caffe.NetParameter: 339:2: Expected identifier.

WARNING: Logging before InitGoogleLogging() is written to STDERR

F0116 15:34:34.112346 25564 upgrade_proto.cpp:928] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: ../../models/bvlc_alexnet/alex_hat_deploy.prototxt

*** Check failure stack trace: ***

Killed

Solution 2: layer 6 was repaired when I train my model , i.e.

layer {

  name: "fc6_wx"

  type: "InnerProduct"

  bottom: "pool5"

  top: "fc6_wx"

  param {

    lr_mult: 1

    decay_mult: 1

  }

    lr_mult: 2

    decay_mult: 0

  inner_product_param {

    num_output: 4096

    weight_filler {

      type: "gaussian"

      std: 0.005

    }

    bias_filler {

      type: "constant"

      value: 0.1

}

change the name: "fc6_wx"  into name: "fc6", and it will be OK .

繼續閱讀