Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

SimpleLSTM faiseq-train tutorial cannot import 'metrics' #5366

Open
Efrainq07 opened this issue Nov 2, 2023 · 0 comments
Open

SimpleLSTM faiseq-train tutorial cannot import 'metrics' #5366

Efrainq07 opened this issue Nov 2, 2023 · 0 comments

Comments

@Efrainq07
Copy link

Efrainq07 commented Nov 2, 2023

馃悰 Bug

Following the SimpleLSTM tutorial, everything works fine until fairseq-train is used as follows:

fairseq-train data-bin/iwslt14.tokenized.de-en \ --arch tutorial_simple_lstm \ --encoder-dropout 0.2 --decoder-dropout 0.2 \ --optimizer adam --lr 0.005 --lr-shrink 0.5 \ --max-tokens 12000

Which gives the following error message:

  File "<string>", line 1, in <module>
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/multiprocessing/spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/multiprocessing/spawn.py", line 125, in _main
    prepare(preparation_data)
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/multiprocessing/spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/multiprocessing/spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/runpy.py", line 288, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/Users/efrainq/opt/anaconda3/bin/fairseq-train", line 5, in <module>
    from fairseq_cli.train import cli_main
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq_cli/train.py", line 40, in <module>
    from fairseq.model_parallel.megatron_trainer import MegatronTrainer
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq/model_parallel/__init__.py", line 6, in <module>
    from . import criterions, models, modules  # noqa
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq/model_parallel/criterions/__init__.py", line 14, in <module>
    importlib.import_module("fairseq.model_parallel.criterions." + module)
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py", line 10, in <module>
    from fairseq.criterions import FairseqCriterion, register_criterion
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq/criterions/__init__.py", line 36, in <module>
    importlib.import_module("fairseq.criterions." + file_name)
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq/criterions/speech_dlm_criterion.py", line 11, in <module>
    from fairseq import metrics, utils
ImportError: cannot import name 'metrics' from 'fairseq' (unknown location)
^CTraceback (most recent call last):
  File "/Users/efrainq/opt/anaconda3/bin/fairseq-train", line 8, in <module>
    sys.exit(cli_main())
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq_cli/train.py", line 574, in cli_main
    distributed_utils.call_main(cfg, main)
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq/distributed/utils.py", line 404, in call_main
    main(cfg, **kwargs)
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq_cli/train.py", line 189, in main
    for _ in itr:
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq/data/iterators.py", line 57, in __next__
    x = next(self._itr)
  File "/Users/efrainq/Documents/Repositories/fairseq/fairseq/data/iterators.py", line 745, in __next__
    item = self._queue.get(True)
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/queue.py", line 171, in get
    self.not_empty.wait()
  File "/Users/efrainq/opt/anaconda3/lib/python3.9/threading.py", line 312, in wait
    waiter.acquire()

To Reproduce

  1. Follow the tutorial and create the LSTM example files
  2. Call fairseq-train using
fairseq-train data-bin/iwslt14.tokenized.de-en \
  --arch tutorial_simple_lstm \
  --encoder-dropout 0.2 --decoder-dropout 0.2 \
  --optimizer adam --lr 0.005 --lr-shrink 0.5 \
  --max-tokens 12000
  1. See the traceback error related to a missing metrics import.

Expected behavior

Training should run seamlessly for the example in the tutorial.

Additional context

This can be fixed just by changing the metrics import in fairseq/fairseq/criterions/speech_dlm_criterion.py to the new fairseq.logging location.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant