Hai sir, I am trying to run some ablations for my project. I want to know if I can run ReDet by removing the neck (ReFPN) part completely.
I tried it by setting "self.with_neck = False". But that is giving the following error.
Traceback (most recent call last):
File "tools/train.py", line 95, in
main()
File "tools/train.py", line 91, in main
logger=logger)
File "/home/ai20resch13001/ReDet-base/mmdet/apis/train.py", line 61, in train_detector
_non_dist_train(model, dataset, cfg, validate=validate)
File "/home/ai20resch13001/ReDet-base/mmdet/apis/train.py", line 197, in _non_dist_train
runner.run(data_loaders, cfg.workflow, cfg.total_epochs)
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/mmcv/runner/runner.py", line 358, in run
epoch_runner(data_loaders[i], **kwargs)
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/mmcv/runner/runner.py", line 264, in train
self.model, data_batch, train_mode=True, **kwargs)
File "/home/ai20resch13001/ReDet-base/mmdet/apis/train.py", line 39, in batch_processor
losses = model(**data)
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in call
result = self.forward(*input, **kwargs)
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 152, in forward
outputs = self.parallel_apply(replicas, inputs, kwargs)
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 162, in parallel_apply
return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)])
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/torch/nn/parallel/parallel_apply.py", line 83, in parallel_apply
raise output
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/torch/nn/parallel/parallel_apply.py", line 59, in _worker
output = module(*input, **kwargs)
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in call
result = self.forward(*input, **kwargs)
File "/home/ai20resch13001/ReDet-base/mmdet/models/detectors/base_new.py", line 95, in forward
return self.forward_train(img, img_meta, **kwargs)
File "/home/ai20resch13001/ReDet-base/mmdet/models/detectors/ReDet.py", line 149, in forward_train
rpn_outs = self.rpn_head(x)
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in call
result = self.forward(*input, **kwargs)
File "/home/ai20resch13001/ReDet-base/mmdet/models/anchor_heads/anchor_head.py", line 91, in forward
return multi_apply(self.forward_single, feats)
File "/home/ai20resch13001/ReDet-base/mmdet/core/utils/misc.py", line 24, in multi_apply
return tuple(map(list, zip(*map_results)))
File "/home/ai20resch13001/ReDet-base/mmdet/models/anchor_heads/rpn_head.py", line 31, in forward_single
x = self.rpn_conv(x)
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/torch/nn/modules/module.py", line 493, in call
result = self.forward(*input, **kwargs)
File "/DATA/ai20resch13001/anaconda3/envs/redet-base/lib/python3.7/site-packages/torch/nn/modules/conv.py", line 338, in forward
self.padding, self.dilation, self.groups)
RuntimeError: Given groups=1, weight of size 256 256 3 3, expected input[2, 512, 128, 128] to have 256 channels, but got 512 channels instead
Kindly let me know what part of the code I have to change to run ReDet without ReFPN. Thank you!