Karel911 / TRACER

TRACER: Extreme Attention Guided Salient Object Tracing Network (AAAI 2022) implementation in PyTorch
Apache License 2.0
195 stars 41 forks source link

does TRACER pretrained model used for training? #14

Closed Alan-Han closed 2 years ago

Alan-Han commented 2 years ago

Hi, I downloaded pre-trained models of TRACER as you mentioned in README, but I'm confused about the step below _Change the model name as 'best_model.pth' and put the weights to the path 'results/DUTS/TEx_0/bestmodel.pth'

question is, this path is model save path, not pretrained model load path, and I could not find you load "best_model.pth" at start of training anywhere in your code, did I miss something?

Karel911 commented 2 years ago

Hi, Thank you for your interest in our research.

If you want to train TRACER with your own dataset or benchmark datasets (e.g., DUT-TR), I recommend training TRACER with EfficientNet based pre-trained model. In this case, you don't need to employ the pre-trained TRACER (just build the scripts without best_model.pth).

In other cases, such as testing your own dataset, put the pre-trained weight best_model.pth to the path results/DUTS/TEx_0/best_model.pth corresponding to backbone scale. For example, if you determine EfficientNet-b2 as a backbone, the path is results/DUTS/TE2_0/best_model.pth (here, best_model.pth is pre-trained weight of TE2). Afterward, please run main.py using test mode (i.e., python main.py test --save_map True).

If the above answers are not enough, please leave the issue with what you plan to do.

Alan-Han commented 2 years ago

Thanks for responding me so fast. Your "Pre-trained models of TRACER" is actually for testing, there is no need to use it as pretrained model for finetuning with new dataset Have I got that right?

Karel911 commented 2 years ago

Indeed, when we initialized the network with pre-trained TRACER on other dataset, not the benchmark dataset, employing EfficienctNet as a backbone showed better generalization performance compared to fine tuning with TRACER. I'm not sure training with pre-trained TRACER show better performance on your dataset, but I recommend you initializing the network with EfficientNet if you want to train your own dataset.