krasserm / fairseq-image-captioning

Transformer-based image captioning extension for pytorch/fairseq
Apache License 2.0
313 stars 56 forks source link

Some bug in caption.py #15

Closed hiteshK03 closed 4 years ago

hiteshK03 commented 4 years ago
2020-07-11 11:26:41 | INFO | fairseq.trainer | loading train data for epoch 1
2020-07-11 11:26:42 | INFO | fairseq.data.data_utils | loaded 566747 examples from: output/train-captions.en
Traceback (most recent call last):                                              
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/bmvc/hitesh/fairseq/fairseq_cli/train.py", line 408, in <module>
    cli_main()
  File "/home/bmvc/hitesh/fairseq/fairseq_cli/train.py", line 366, in cli_main
    cli_main_helper(args)
  File "/home/bmvc/hitesh/fairseq/fairseq_cli/train.py", line 393, in cli_main_helper
    fn=distributed_main, args=(args,), nprocs=args.distributed_world_size
  File "/home/bmvc/venv_bmvc/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 171, in spawn
    while not spawn_context.join():
  File "/home/bmvc/venv_bmvc/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 118, in join
    raise Exception(msg)
Exception: 

-- Process 0 terminated with the following error:
Traceback (most recent call last):
  File "/home/bmvc/venv_bmvc/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 19, in _wrap
    fn(i, *args)
  File "/home/bmvc/hitesh/fairseq/fairseq_cli/train.py", line 354, in distributed_main
    args, init_distributed=True, after_distributed_init_fn=after_distributed_init_fn
  File "/home/bmvc/hitesh/fairseq/fairseq_cli/train.py", line 135, in main
    valid_losses, should_stop = train(args, trainer, task, epoch_itr)
  File "/usr/lib/python3.6/contextlib.py", line 52, in inner
    return func(*args, **kwds)
  File "/home/bmvc/hitesh/fairseq/fairseq_cli/train.py", line 226, in train
    log_output = trainer.train_step(samples)
  File "/usr/lib/python3.6/contextlib.py", line 52, in inner
    return func(*args, **kwds)
  File "/home/bmvc/hitesh/fairseq/fairseq/trainer.py", line 421, in train_step
    ignore_grad=is_dummy_batch,
  File "/home/bmvc/hitesh/fairseq/fairseq/tasks/fairseq_task.py", line 342, in train_step
    loss, sample_size, logging_output = criterion(model, sample)
  File "/home/bmvc/venv_bmvc/lib/python3.6/site-packages/torch/nn/modules/module.py", line 532, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/bmvc/hitesh/fairseq/fairseq/criterions/label_smoothed_cross_entropy.py", line 56, in forward
    net_output = model(**sample['net_input'])
  File "/home/bmvc/venv_bmvc/lib/python3.6/site-packages/torch/nn/modules/module.py", line 532, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/bmvc/venv_bmvc/lib/python3.6/site-packages/torch/nn/parallel/distributed.py", line 447, in forward
    output = self.module(*inputs[0], **kwargs[0])
  File "/home/bmvc/venv_bmvc/lib/python3.6/site-packages/torch/nn/modules/module.py", line 532, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/bmvc/hitesh/captioning/fairseq-image-captioning/model/caption.py", line 138, in forward
    decoder_out = self.decoder(prev_output_tokens, encoder_out=encoder_out, features_only=False, **kwargs)
  File "/home/bmvc/venv_bmvc/lib/python3.6/site-packages/torch/nn/modules/module.py", line 532, in __call__
    result = self.forward(*input, **kwargs)
TypeError: forward() got an unexpected keyword argument 'src_locations'

Can anyone help with this?

krasserm commented 4 years ago

Did you make any modifications to the source code or changed environment.yml?

hiteshK03 commented 4 years ago

No, but with torchvision=0.4, torch=1.2 gets installed and fairseq needs torch=1.4

krasserm commented 4 years ago

No, fairseq 0.9.0 requires PyTorch >= 1.2.0 and fairseq-image-captioning depends on fairseq 0.9.0. If you install fairseq-image-captioning as described you'll get correct dependencies.