davheld / GOTURN

Source code for paper: Learning to Track at 100 FPS with Deep Regression Networks, Held, et al. ECCV 2016
http://davheld.github.io/GOTURN/GOTURN.html
MIT License
886 stars 316 forks source link

A question about pre-train model? #40

Open Ouya-Bytes opened 7 years ago

Ouya-Bytes commented 7 years ago

Dear davheld: I have a question about how do you get the pretrain model, can you give some detials? Question as follows: (1) Which dataset ( such:ILSVRC2014_DET or ILSVRC2014_CLS) to pretrain the convolutional layer? (2) If I only use the dataset of ALOV300+ and 2014_DET to train the net get regression value , or don't do the step of pretrain convolution layer, will decresed the tracking performance? (3) When you train the siamese net, the two network branch will shared the layer params? or has independence parameters? Looking forward to your reply, best wish!

davheld commented 7 years ago

1) I use the pre-trained CaffeNet architecture, which is available from Caffe: http://caffe.berkeleyvision.org/model_zoo.html

2) I think it probably will - if you do this then I recommend using a much smaller architecture.

3) As mentioned above, I do not pre-train the convolutional layers myself but I take the layers pre-trained from Caffe. The two sets of convolutional layers have identical weights.

Ouya-Bytes commented 7 years ago

@davheld I according to your code(tracker.prototxt and solver.prototxt ,iteration 500000) and use the train.cpp to train the network use dataset(2014_DET and ALOV300+), the train loss value is not convergent, and oscillation between on 20 ~ 50 finally.so that have a very pool tracking performance. Can you give me some advise? Thks

davheld commented 7 years ago

It sounds like you are overfitting. Just to be sure - I don't train the conv layers at all, those are pre-trained using CaffeNet.

Ouya-Bytes commented 7 years ago

yet, i only use your code and prototxt( run the train.cpp, keep params of solver.prototxt and tracker.prototxt) to re-train the network, i don't change anymore. the convolutional layer is from CaffeNet, and lr_mult is set 0 no change.

davheld commented 7 years ago

How do you create the pre-trained network?

Ouya-Bytes commented 7 years ago

the pretrian param from your offer address http://cs.stanford.edu/people/davheld/public/GOTURN/weights_init/tracker_init.caffemodel, i dont change the prototxt, i only want to run train.cpp code to get tracker_iter_500000.caffemodel, then can test the tracker

davheld commented 7 years ago

That's odd, not sure.

Jiangfeng-Xiong commented 7 years ago

I have the same problem, changing val_ratio from 0.2 to 0 in "loader/loader_alov.cpp" may help, but still , model trained by myself doesn't perform as good as pre-train model.

Ouya-Bytes commented 7 years ago

not convergent? oscillation?

davheld commented 7 years ago

The oscillation is normal and simply occurs because the training evaluation is occurring on mini-batches which are randomly sampled at each iteration. However, the numbers that you listed seem lower than what I remember so I believe that you are overfitting, although I am not sure why.

Jiangfeng-Xiong commented 7 years ago

train loss is like this train loss, range from 20 to 90 @OuYag

davheld commented 7 years ago

Try reducing the learning rate? The oscillations in that graph look fairly large. Although if you are using the default learning rate then this is unusual that you should need to change it. Also, make sure that all convolutional layers are fixed (e.g. in both streams of the network).

ujsyehao commented 7 years ago

@OuYag your words"lr_mult is set 0 no change." I don't think it is right, lr_mult set to 0 means no learning rate. Caffe says that we will set the weight learning rate to be the same as the learning rate given by the solver during runtime

freescar commented 6 years ago

@Jiangfeng-Xiong @OuYag do you solve the issue? I have the same problem, the test loss value is between 10 and 20. I guess it is overfitting, however changing lr or batchsize cannot reduce losses

wendianwei commented 6 years ago

Hi, I want to know how to evaluate your performance?