krumo / Domain-Adaptive-Faster-RCNN-PyTorch

Domain Adaptive Faster R-CNN in PyTorch
MIT License
304 stars 68 forks source link

It seems that the target (foggy cityscapes) label is also used for training? #2

Closed kalyo-zjl closed 4 years ago

kalyo-zjl commented 4 years ago

in trainer.py line 141-146 images = (source_images+target_images).to(device) targets = [target.to(device) for target in list(source_targets+target_targets)]

loss_dict = model(images, targets)

losses = sum(loss for loss in loss_dict.values())

Does it seem that the target label is also used for calculating the detector_losses and proposal_losses?

krumo commented 4 years ago

@kalyo-zjl, thanks for your interests. maskrcnn-benchmark is a framework designed for general purpose object detection. Because I don’t want to modify the APIs it provides largely, I choose to use the structure it provides to store domain labels and name the variable in a style consistent to the framework.

I admit this naming seems confusing. However, here tgt_labels is only used to store domain labels and you could pass a random box to it. If you would like to read more about this code, you would find that no bbox info is used in the training process.

XuShoweR commented 4 years ago

Thanks for your answer. I was confused by this question before

@kalyo-zjl, thanks for your interests. maskrcnn-benchmark is a framework designed for general purpose object detection. Because I don’t want to modify the APIs it provides largely, I choose to use the structure it provides to store domain labels and name the variable in a style consistent to the framework.

I admit this naming seems confusing. However, here tgt_labels is only used to store domain labels and you could pass a random box to it. If you would like to read more about this code, you would find that no bbox info is used in the training process.

Thanks for your answer. I was confused by this question before

cizhenshi commented 4 years ago

@kalyo-zjl, thanks for your interests. maskrcnn-benchmark is a framework designed for general purpose object detection. Because I don’t want to modify the APIs it provides largely, I choose to use the structure it provides to store domain labels and name the variable in a style consistent to the framework.

I admit this naming seems confusing. However, here tgt_labels is only used to store domain labels and you could pass a random box to it. If you would like to read more about this code, you would find that no bbox info is used in the training process.

Hi~I want to know the choose of rois is random choice? I find that random ROI selection seems to lead to a lot of randomness in training results.