Skip to content

Dependency conflict with torch 1.13 and transformers>4.47 #31

@zacstewart

Description

@zacstewart

It seems that mmdet has an unbounded dependency on transformers. Since transformers 4.48, PyTorch 1 is no longer supported. sn-gamestate depends explicitly on torch==1.13.1 and upon mmdet~=3.1.0. The latter (because of it's unbounded dependency) installs latest transformers and you get the following error at runtime. By explicitly declaring transformers==4.47.1 as a dependency you can get around this.

Traceback (most recent call last):
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/bin/tracklab", line 10, in <module>
    sys.exit(main())
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/main.py", line 94, in decorated_main
    _run_hydra(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/utils.py", line 394, in _run_hydra
    _run_app(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/utils.py", line 457, in _run_app
    run_and_report(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/utils.py", line 223, in run_and_report
    raise ex
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/utils.py", line 220, in run_and_report
    return func()
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/utils.py", line 458, in <lambda>
    lambda: hydra.run(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/hydra.py", line 132, in run
    _ = ret.return_value
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/core/utils.py", line 260, in return_value
    raise self._return_value
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/core/utils.py", line 186, in run_job
    ret.return_value = task_function(task_cfg)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/tracklab/main.py", line 38, in main
    inst_module = instantiate(module, device=device, tracking_dataset=tracking_dataset)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 226, in instantiate
    return instantiate_node(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/hydra/_internal/instantiate/_instantiate2.py", line 347, in instantiate_node
    return _call_target(_target_, partial, args, kwargs, full_key)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/tracklab/utils/monkeypatch_hydra.py", line 52, in new_call_target
    return _target_(*args, **kwargs)
  File "/home/zac/Code/SoccerNet/sn-gamestate/sn_gamestate/jersey/mmocr_api.py", line 25, in __init__
    self.ocr = MMOCRInferencer(det='dbnet_resnet18_fpnc_1200e_icdar2015', rec='SAR')
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/apis/inferencers/mmocr_inferencer.py", line 69, in __init__
    self.textdet_inferencer = TextDetInferencer(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/apis/inferencers/base_mmocr_inferencer.py", line 65, in __init__
    super().__init__(
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/infer/infer.py", line 180, in __init__
    self.model = self._init_model(cfg, weights, device)  # type: ignore
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/infer/infer.py", line 483, in _init_model
    model = MODELS.build(cfg.model)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/registry/registry.py", line 570, in build
    return self.build_func(cfg, *args, **kwargs, registry=self)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
    return build_from_cfg(cfg, registry, default_args)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/registry/build_functions.py", line 98, in build_from_cfg
    obj_cls = registry.get(obj_type)
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/registry/registry.py", line 451, in get
    self.import_from_location()
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmengine/registry/registry.py", line 376, in import_from_location
    import_module(loc)
  File "/home/zac/.local/share/uv/python/cpython-3.9.23-linux-x86_64-gnu/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/models/__init__.py", line 2, in <module>
    from .common import *  # NOQA
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/models/common/__init__.py", line 2, in <module>
    from .backbones import *  # NOQA
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/models/common/backbones/__init__.py", line 2, in <module>
    from .clip_resnet import CLIPResNet
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmocr/models/common/backbones/clip_resnet.py", line 4, in <module>
    from mmdet.models.backbones import ResNet
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmdet/models/__init__.py", line 2, in <module>
    from .backbones import *  # noqa: F401,F403
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmdet/models/backbones/__init__.py", line 7, in <module>
    from .efficientnet import EfficientNet
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmdet/models/backbones/efficientnet.py", line 14, in <module>
    from ..utils import make_divisible
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmdet/models/utils/__init__.py", line 18, in <module>
    from .vlfuse_helper import BertEncoderLayer, VLFuse, permute_and_flatten
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/mmdet/models/utils/vlfuse_helper.py", line 13, in <module>
    from transformers.modeling_utils import apply_chunking_to_forward
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/transformers/modeling_utils.py", line 61, in <module>
    from .integrations.flex_attention import flex_attention_forward
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/transformers/integrations/flex_attention.py", line 45, in <module>
    class WrappedFlexAttention:
  File "/home/zac/Code/SoccerNet/sn-gamestate/.venv/lib/python3.9/site-packages/transformers/integrations/flex_attention.py", line 60, in WrappedFlexAttention
    @torch.compiler.disable(recursive=False)
AttributeError: module 'torch' has no attribute 'compiler'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions