yijingru / BBAVectors-Oriented-Object-Detection

[WACV2021] Oriented Object Detection in Aerial Images with Box Boundary-Aware Vectors
MIT License
467 stars 88 forks source link

训练自己的数据集,很多目标预测置信度很低 #30

Open huyu6789 opened 4 years ago

huyu6789 commented 4 years ago

作者你好,这几天使用您分享的模型对自己的数据集进行训练时,发现了一些问题,这里想跟您请教一下: 1.一开始训练时损失下降的很快,但是到80个epoch时,损失大概徘徊在0.7左右下不来了,后面继续训练了200个epoch也还是0.7左右,请问这样算是正常的吗,是否存在模型没收敛的情况呢? 2.在进行测试时,发现对很多目标的预测置信度很低,最高大概只有0.7左右,最低的可能只有0.2,您觉得这可以如何改进呢。

ps:数据集图片数量为2000张,batch_size设置为8(GPU为2块GTX2080TI),conf_thresh设置为0.1,学习率后面训练的时候在原来的基础上乘了百分之一。

yijingru commented 4 years ago
  1. 是有可能没有到达optimal,这个跟batch size, learning rate, optimizer,model parameters, weight decay都有关系。如果是自己的数据的话,可能需要做多次调试。论文里面我是在机器不是很足的情况下做的调试,也许还有更好的优化参数。我觉得80 epoch对2000图片来说可能差不多了,你的batch size有点少,数据variance有点大。
  2. 置信度的话没有问题,因为正样本和负样本是imbalanced,可能可以从balance class角度优化。
huyu6789 commented 4 years ago
  1. 是有可能没有到达optimal,这个跟batch size, learning rate, optimizer,model parameters, weight decay都有关系。如果是自己的数据的话,可能需要做多次调试。论文里面我是在机器不是很足的情况下做的调试,也许还有更好的优化参数。我觉得80 epoch对2000图片来说可能差不多了,你的batch size有点少,数据variance有点大。
  2. 置信度的话没有问题,因为正样本和负样本是imbalanced,可能可以从balance class角度优化。

好的,非常感谢您的建议,关于第2点,我训练集的类别是五类,不是很多,所以没有加负样本。

18804601171 commented 4 years ago

@huyu6789 我在训练的过程中遇到了AttributeError: 'Tensor' object has no attribute 'bool' Traceback (most recent call last): File "main.py", line 57, in <module> ctrbox_obj.train_network(args) File "/home/px/PycharmProjects/BBAVectors-Oriented-Object-Detection/train.py", line 132, in train_network criterion=criterion) File "/home/px/PycharmProjects/BBAVectors-Oriented-Object-Detection/train.py", line 167, in run_epoch loss = criterion(pr_decs, data_dict) File "/home/px/anaconda3/envs/px-lab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__ result = self.forward(*input, **kwargs) File "/home/px/PycharmProjects/BBAVectors-Oriented-Object-Detection/loss.py", line 115, in forward wh_loss = self.L_wh(pr_decs['wh'], gt_batch['reg_mask'], gt_batch['ind'], gt_batch['wh']) File "/home/px/anaconda3/envs/px-lab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in __call__ result = self.forward(*input, **kwargs) File "/home/px/PycharmProjects/BBAVectors-Oriented-Object-Detection/loss.py", line 68, in forward mask = mask.unsqueeze(2).expand_as(pred).bool() AttributeError: 'Tensor' object has no attribute 'bool' 你有遇到这个问题吗?

seacloud-0420 commented 3 years ago

@huyu6789 @yijingru 你好,你训练自己的数据集前也像DOTA数据集一样裁剪成600*600吗?我的数据集目标较大不适合裁剪图片,用不裁剪的图片训练,测试的图片可视化后框是平行四边形,请问你有遇到这个问题吗?