JackWoo0831 / DepthMOT

MIT License
9 stars 2 forks source link

DepthMOT在KITTI数据集上训练发生异常——TypeError forward() takes 2 positional arguments but 4 were given #2

Open chen-si-jia opened 3 months ago

chen-si-jia commented 3 months ago

命令:

CUDA_VISIBLE_DEVICES=1 python -W ignore train.py mot_depth --dataset kitti --exp_id kitti --arch dla_34 --batch_size 1 --num_epochs 40 --hide_data_time --load_model '../models/pretrained/coco_mono_dla_depth.pth' --lr_step 30 --gpus 0 --data_cfg '../src/lib/cfg/kitti.json'

完整报错:

发生异常: TypeError forward() takes 2 positional arguments but 4 were given
File "XXX/src/lib/trains/mot_depth.py", line 315, in forward outputs = self.model(batch['input'], batch['prev_input'], batch['next_input']) # outputs: dict
File "XXX/src/lib/trains/mot_depth.py", line 376, in run_epoch
output, loss, loss_stats = model_with_loss(batch)
File "XXX/src/lib/trains/base_trainer.py", line 120, in train
return self.run_epoch('train', epoch, data_loader)
File "XXX/src/train.py", line 79, in main log_dicttrain, = trainer.train(epoch, train_loader)
File "XXX/src/train.py", line 107, in
main(opt) TypeError: forward() takes 2 positional arguments but 4 were given

JackWoo0831 commented 3 months ago

请问可以具体定位到是哪里的forward函数出的问题吗?

chen-si-jia commented 3 months ago

请问可以具体定位到是哪里的forward函数出的问题吗?

这个文件:src/lib/trains/mot_depth.py 中的forward: class myModelWithLoss(nn.Module): """ package the model and loss together compared to ModleWithLoss, the model returns a dict """ def init(self, model, loss): super().init() self.model = model self.loss = loss def forward(self, batch):

TODO: input prev and next frame,

    outputs = self.model(batch['input'], batch['prev_input'], batch['next_input'])  # outputs: dict
    loss, loss_stats = self.loss(outputs, batch)
    return outputs, loss, loss_stats