miao0913 / SaCNN-CrowdCounting-Tencent_Youtu

Crowd Counting Via Scale-adaptive Convolutional Neural Network
107 stars 41 forks source link

bug #11

Closed zllljf closed 6 years ago

zllljf commented 6 years ago

Dear author. When I reproduce your code of SaCNN, the following problems occurred:

  1. May I ask what the initial value of average loss should be set?

    ~/SaCNN-CrowdCounting-Tencent_Youtu/SaCNN-master$ sh train_sacnn.sh : not found.sh: 3: train_sacnn.sh: : not found.sh: 12: train_sacnn.sh: Please input train average loss: 1 : bad variable name read: average_loss : not found.sh: 15: train_sacnn.sh: : No such file or directorytotxt : No such file or directorytotxt : No such file or directorytotxt : No such file or directorytotxt : not found.sh: 20: train_sacnn.sh: : No such file or directoryotxt : No such file or directoryotxt : not found.sh: 23: train_sacnn.sh: train_sacnn.sh: 53: train_sacnn.sh: Syntax error: end of file unexpected (expecting "fi")

  2. When i compile caffe with your caffe.proto , replace the original caffe.proto, follow your readme document, there will be an error shown as:

    ~/SaCNN-CrowdCounting-Tencent_Youtu/caffe$ make all -j8 PROTOC src/caffe/proto/caffe.proto NVCC src/caffe/solvers/sgd_solver.cu NVCC src/caffe/solvers/adagrad_solver.cu NVCC src/caffe/solvers/adam_solver.cu NVCC src/caffe/solvers/rmsprop_solver.cu NVCC src/caffe/solvers/nesterov_solver.cu NVCC src/caffe/solvers/adadelta_solver.cu NVCC src/caffe/layers/bnll_layer.cu NVCC src/caffe/layers/bias_layer.cu NVCC src/caffe/layers/cudnn_relu_layer.cu NVCC src/caffe/layers/log_layer.cu NVCC src/caffe/layers/scale_layer.cu NVCC src/caffe/layers/absval_layer.cu NVCC src/caffe/layers/triplet_loss_layer.cu NVCC src/caffe/layers/deconv_layer.cu NVCC src/caffe/layers/hdf5_output_layer.cu NVCC src/caffe/layers/tile_layer.cu src/caffe/layers/triplet_loss_layer.cu(66): error: class "caffe::LayerParameter" has no member "triplet_loss_param" detected during instantiation of "void caffe::TripletLossLayer<Dtype>::Forward_gpu(const std::vector<caffe::Blob<Dtype> *, std::allocator<caffe::Blob<Dtype> *>> &, const std::vector<caffe::Blob<Dtype> *, std::allocator<caffe::Blob<Dtype> *>> &) [with Dtype=float]" (146): here src/caffe/layers/triplet_loss_layer.cu(101): error: class "caffe::LayerParameter" has no member "triplet_loss_param" detected during instantiation of "void caffe::TripletLossLayer<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]" (146): here src/caffe/layers/triplet_loss_layer.cu(66): error: class "caffe::LayerParameter" has no member "triplet_loss_param" detected during instantiation of "void caffe::TripletLossLayer<Dtype>::Forward_gpu(const std::vector<caffe::Blob<Dtype> *, std::allocator<caffe::Blob<Dtype> *>> &, const std::vector<caffe::Blob<Dtype> *, std::allocator<caffe::Blob<Dtype> *>> &) [with Dtype=double]" (146): here src/caffe/layers/triplet_loss_layer.cu(101): error: class "caffe::LayerParameter" has no member "triplet_loss_param" detected during instantiation of "void caffe::TripletLossLayer<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=double]" (146): here 4 errors detected in the compilation of "/tmp/tmpxft_00007334_00000000-17_triplet_loss_layer.compute_61.cpp1.ii". Makefile:594: recipe for target '.build_release/cuda/src/caffe/layers/triplet_loss_layer.o' failed make: *** [.build_release/cuda/src/caffe/layers/triplet_loss_layer.o] Error 1 make: *** Waiting for unfinished jobs....

as shown the error, if it is caused by the code from raw caffe.proto deleted?

Looking forward to your answer, thank you

miao0913 commented 6 years ago
  1. it is basically the number of total training samples you have, which is 3600 in the solver. Basically it is not necessarily need to be set.
  2. because your caffe has triplet_loss_layer while this is by default not included in caffe proto we provided ....