dqshuai / MetaFormer

A PyTorch implementation of "MetaFormer: A Unified Meta Framework for Fine-Grained Recognition". A reference PyTorch implementation of “CoAtNet: Marrying Convolution and Attention for All Data Sizes”
MIT License
210 stars 36 forks source link

RuntimeError in #17

Closed Cat-L closed 2 years ago

Cat-L commented 2 years ago

Hi,thanks for your patience. I'm new here,and when I try to run the train in CUB200,meet the error Could you please help .THANGKS.

Here are my run commend python3 -m torch.distributed.launch --nproc_per_node 6 --master_port 12345 main.py --cfg ./configs/MetaFG_meta_1_224.yaml --batch-size 12 --tag cub-200_v1 --lr 5e-5 --min-lr 5e-7 --warmup-lr 5e-8 --epochs 2500 --warmup-epochs 20 --dataset cub-200 --accumulation-steps 2 --opts DATA.IMG_SIZE 224

And the error

Traceback (most recent call last): File "main.py", line 403, in main(config) File "main.py", line 163, in main train_one_epoch_local_data(config, model, criterion, data_loader_train, optimizer, epoch, mixup_fn, lr_scheduler) File "main.py", line 210, in train_one_epoch_local_data outputs = model(samples,meta) File "/home/miniconda3/envs/pytorch/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, kwargs) File "/home/miniconda3/envs/pytorch/lib/python3.8/site-packages/torch/nn/parallel/distributed.py", line 705, in forward output = self.module(*inputs[0], *kwargs[0]) File "/home/miniconda3/envs/pytorch/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(input, kwargs) File "/home/MetaFormer/models/MetaFG_meta.py", line 231, in forward x = self.forward_features(x,meta) File "/home/MetaFormer/models/MetaFG_meta.py", line 171, in forward_features metas = torch.split(meta,self.meta_dims,dim=1) File "/home/miniconda3/envs/pytorch/lib/python3.8/site-packages/torch/functional.py", line 156, in split return tensor.split(split_size_or_sections, dim) File "/home/miniconda3/envs/pytorch/lib/python3.8/site-packages/torch/tensor.py", line 499, in split return super(Tensor, self).split_with_sizes(split_size, dim) RuntimeError: split_with_sizes expects split_sizes to sum exactly to 32 (input tensor's size at dimension 1), but got split_sizes=[4, 3]

dqshuai commented 2 years ago

For cub,using bert embedding as extra info,you can using config MetaFG_meta_bert_1_224.yaml.Config MetaFG_meta_1_224.yaml is used to using spatio-temporal info as extra info.

Cat-L commented 2 years ago

For cub,using bert embedding as extra info,you can using config MetaFG_meta_bert_1_224.yaml.Config MetaFG_meta_1_224.yaml is used to using spatio-temporal info as extra info.

Thanks a lot.Try it now