------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
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
(105): here
the original code is :
1 Dtype* diff_cpu_data = bottom[i]->mutable_cpu_diff();
2 const Dtype* label_data = bottom[1]->cpu_data(); // label data: 0 or 1
3 const Dtype* predict_data = bottom[0]->cpu_data(); // predict data
4
5 int spl_num = 0;
6 int al_num = 0;
7
8 for(int id = 0; id < bottom[i]->count(); ++id) { // 35*12=420
9
10 // Self Paced Learning
11 if (label_data[id]==0){
12 // negative samples ... do nothing
13 }
14 else{
15 if(predict_data[id]>0.7 && label_data[id]==1 ) {
16 spl_num ++ ;
17 // if the condition is met, transmit the gradient
18 // else make the gradient equal to zero...
19 }
20 else {
21 diff_cpu_data[id] = 0;
22 // bottom[i]->mutable_cpu_diff()[id] = 0;
23 }
24 }
25
26
27 // Active Learning
28 if (0.4 < predict_data[id] && predict_data[id] < 0.5){
29
30 if (label_data[id] == 1){
31
32 predict_data[id] = 1 ;
33 }else
34 if (label_data[id] == 0){
35 predict_data[id] = 0 ;
36 }
37
38 al_num++;
39
40 }
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 :
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
}
param {
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 thename: "fc6_wx"intoname: "fc6", and it will be OK .
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
原文链接: https://www.cnblogs.com/wangxiaocvpr/p/5134983.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/227484
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!