Summary
Currently, there is still no one-solution-for-all for installing DeepLabCut with the TensorFlow extra. While the current matrix takes into account different Python versions and operating systems, users with older CUDA drivers may still encounter installation issues. Having a diverser set of installation options can help to avoid users to have to go and search for a compatible stack of TF versions. This will be particularly relevant in the TF LTS branch.
Description
Installing pip install deeplabcut[tf] on Linux + Python 3.11 currently allows tensorflow>=2.12 with no upper bound, so users can land on very new TF builds (e.g. 2.21) with CUDA runtimes that don’t match their NVIDIA driver. Alternatively, pinning TF 2.12 conflicts with the rest of the stack because TF 2.12 requires NumPy < 1.24 while core DLC allows numpy<2, so typical envs (NumPy 1.26 + pandas 2.2+) break or need manual downgrades.
Proposed behavior
- For Linux + Python ≥ 3.11, default the tf extra to a bounded, supported TF line (e.g. 2.15.x) whose NumPy requirements overlap core DLC (numpy>=1.23.5,<2 is compatible with TF 2.15.x and existing DLC deps).
- Optionally add an explicit numpy>=1.23.5,<2 in the tf extra so resolution is predictable.
- Pin companion packages (e.g. tensorpack==0.11, tf-slim==1.1.0, compatible tf-keras).
- Repeat for extras
tf-latest (matching current specs) , tf-cu12, tf-cu11.
- Docs: state minimum NVIDIA driver / link to TensorFlow’s CUDA compatibility for the chosen default; consider a second optional extra (e.g. tf-cuda11 vs tf-cuda12) for machines that cannot use the default wheel.
Acceptance criteria
Fresh pip install deeplabcut[tf] on Linux + Python 3.11 pulls a known-good TF + NumPy + backend set without upgrading to unsupported TF or forcing NumPy < 1.24 unless the user opts into tf-latest, tf-cu12 or tf-cu11.
pyproject.toml markers are consistent with documented supported stacks.
.
Summary
Currently, there is still no one-solution-for-all for installing DeepLabCut with the TensorFlow extra. While the current matrix takes into account different Python versions and operating systems, users with older CUDA drivers may still encounter installation issues. Having a diverser set of installation options can help to avoid users to have to go and search for a compatible stack of TF versions. This will be particularly relevant in the TF LTS branch.
Description
Installing pip install deeplabcut[tf] on Linux + Python 3.11 currently allows tensorflow>=2.12 with no upper bound, so users can land on very new TF builds (e.g. 2.21) with CUDA runtimes that don’t match their NVIDIA driver. Alternatively, pinning TF 2.12 conflicts with the rest of the stack because TF 2.12 requires NumPy < 1.24 while core DLC allows numpy<2, so typical envs (NumPy 1.26 + pandas 2.2+) break or need manual downgrades.
Proposed behavior
tf-latest(matching current specs) ,tf-cu12,tf-cu11.Acceptance criteria
Fresh pip install deeplabcut[tf] on Linux + Python 3.11 pulls a known-good TF + NumPy + backend set without upgrading to unsupported TF or forcing NumPy < 1.24 unless the user opts into
tf-latest,tf-cu12ortf-cu11.pyproject.toml markers are consistent with documented supported stacks.
.