SSD移植

1,报错Check failed: label < num_classes (5 vs. 5)
打开train_tv_logo.prototxt搜索num_classes改为9(8classes+1)

2,报错Check failed: num_priors_ * num_classes_ == bottom[1]->channels() (62136 vs. 34520) .
理解:在multibox_loss_layer里,有Number of priors must match number of confidence predictions这一句话,查到http://blog.csdn.net/u012235274/article/details/52212077里面:
预测loction bottom[0] dimension is [N*C*1*1],confidence bottom[1] dimension is [N*C*1*1]
//priors bottom[2] dimension is [N*1*2*W], gound truth bottom[3] dimension is [N*1*H*8]
修改:train_tv_logo.prototxt1148行num_output=36和另外三个,36=4*9,4是一个cell里面的priorbox数目,9是8class+背景class

3,报错:Cannot copy param 0 weights from layer ‘fire8_norm_mbox_conf’; shape mismatch. Source param shape is 20 512 3 3 (92160); target param shape is 36 512 3 3 (165888). To learn this layer’s parameters from scratch rather than copying from a saved net, rename the layer.
在train.sh里最后一行去掉-weights $WEIGHT

4,正常训练,loss一直保持在6.9左右不下降
初始化有问题

5,test-train时候警告:Missing true_pos for label:

6,改变flip=true后:Check failed: num_priors_ * loc_classes_ * 4 == bottom[0]->channels() (41424 vs. 27616) Number of priors must match number of location predictions
需要把4个mbox_loc层的numoutput从16改成24(4*4->6*4)(test和train都要改)

7,Check failed: num_priors_ * num_classes_ == bottom[1]->channels() (51780 vs. 34520) Number of priors must match number of confidence predictions.

需要把4个mbox_conf层的numoutput从20改成30(4*5->6*5)(test和train都要改)

8,Check failed: 0 == bottom[0]->count() % explicit_count (0 vs. 2) bottom count (80430) must be divisible by the product of the specified dimensions (4)
test里面reshape里面的4改成5(test要改,train没有)

你可能感兴趣的:(小总结)