3detr icon indicating copy to clipboard operation
3detr copied to clipboard

Question about size loss.

Open Sharpiless opened this issue 3 years ago • 1 comments

In function loss_size, the "gt_box_sizes" is scaled by point_cloud_dims on the scale of 0 to ∞ while the "pred_box_sizes" is scaled into (0, 1) by sigmoid. F.l1_loss is used to match "gt_box_sizes" and "pred_box_sizes". Is this the right thing to do?

In [1]: pred_box_sizes.max()
Out[1]: tensor(0.8369, device='cuda:0', grad_fn=<MaxBackward1>)

In [2]: gt_box_sizes.max()
Out[2]: tensor(2.5446, device='cuda:0')

In [3]:

Sharpiless avatar Jul 28 '22 11:07 Sharpiless

Rewrite:

    def loss_size(self, outputs, targets, assignments):
        gt_box_sizes = targets["gt_box_sizes_normalized"]
        pred_box_sizes = outputs["size_normalized"]
        print("gt_box_sizes(max):", gt_box_sizes.max(), "pred_box_sizes(max):", pred_box_sizes.max())

run:

sh scripts/sunrgbd_quick.sh

get:

gt_box_sizes(max): tensor(2.7780, device='cuda:0') pred_box_sizes(max): tensor(0.8626, device='cuda:0', grad_fn=<MaxBackwa
rd1>)                                                        
gt_box_sizes(max): tensor(2.7780, device='cuda:0') pred_box_sizes(max): tensor(0.8083, device='cuda:0', grad_fn=<MaxBackwa
rd1>)        
gt_box_sizes(max): tensor(2.7780, device='cuda:0') pred_box_sizes(max): tensor(0.8018, device='cuda:0', grad_fn=<MaxBackwa
rd1>)                                                                                                                     
gt_box_sizes(max): tensor(2.7780, device='cuda:0') pred_box_sizes(max): tensor(0.7761, device='cuda:0', grad_fn=<MaxBackwa
rd1>)                                                        
gt_box_sizes(max): tensor(2.7780, device='cuda:0') pred_box_sizes(max): tensor(0.8450, device='cuda:0', grad_fn=<MaxBackwa
rd1>)                                                        
gt_box_sizes(max): tensor(2.7780, device='cuda:0') pred_box_sizes(max): tensor(0.8318, device='cuda:0', grad_fn=<MaxBackwa
rd1>)                                                                                                                     
gt_box_sizes(max): tensor(0.9309, device='cuda:0') pred_box_sizes(max): tensor(0.8833, device='cuda:0', grad_fn=<MaxBackwa
rd1>)                                                        
gt_box_sizes(max): tensor(0.9309, device='cuda:0') pred_box_sizes(max): tensor(0.8971, device='cuda:0', grad_fn=<MaxBackwa
rd1>)                                                        
gt_box_sizes(max): tensor(0.9309, device='cuda:0') pred_box_sizes(max): tensor(0.8606, device='cuda:0', grad_fn=<MaxBackwa
rd1>)                                                        
gt_box_sizes(max): tensor(0.9309, device='cuda:0') pred_box_sizes(max): tensor(0.8204, device='cuda:0', grad_fn=<MaxBackwa
rd1>)

Sharpiless avatar Jul 28 '22 12:07 Sharpiless