Repository navigation
Conversation
Lift the torch<2.11 / torchvision<0.26 caps and the <3.13 Python cap. FMPose3D gives the same results on torch 2.15 as on 2.10: seeded 3D lifting differs by at most 3.9e-7 m, and the end-to-end demo image gives identical 2D keypoints and 3D poses within 1.8e-7 m. On a driver too old for the CUDA 13 wheels of torch 2.11+, torch warns and runs on the CPU; the README's PyTorch note now says so and shows how to install a CUDA 12 build first. CI: the floor job installed torch 2.4.0, which does not satisfy torch>=2.4.1, so pip replaced it with the newest allowed torch. It now installs 2.4.1, torchvision comes from the same CPU index as torch, and a new job runs torch 2.15.0 on Python 3.14.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This lifts the
torch<2.11/torchvision<0.26caps from #38 and the<3.13Python cap. FMPose3D gives the same results on torch 2.15 as on torch 2.10, and no code changes were needed.Why: FMPose3D currently cannot be installed next to packages that need torch 2.11 or newer, or on Python 3.13 and 3.14. One example is MyoSuite's mjlab backend, which needs torch>=2.13; we would like to retarget FMPose3D poses onto its musculoskeletal models.
The CUDA 13 driver concern from #38
From torch 2.11 on, PyPI's default Linux wheels bring a CUDA 13 runtime, which needs an R580+ driver. On an older driver the fallback to the CPU is not silent:
c10/cuda/CUDAFunctions.cpp(device_count) and is unchanged from v2.11.0 to v2.15.0.The README's PyTorch/CUDA note still described the old
torch<2.5pin. It now explains this and shows how to install a CUDA 12 build first, with--index-url https://download.pytorch.org/whl/cu126; that index has torch up to 2.14.1.Changes
pyproject.toml:torch>=2.4.1andtorchvision>=0.19.1, with no upper bounds.requires-python = ">=3.10", plus classifiers for Python 3.11 to 3.14.README.md: the PyTorch/CUDA note above, and "Python 3.10 or newer"..github/workflows/build.yaml:torch>=2.4.1. Sopip install '.[dev]'replaced it with the newest allowed torch, and the floor was never tested. It now installs 2.4.1.Testing
All runs used Windows and CPU builds.
pytest -m "not functional and not network"pytest -m functional(weights from HF and Google Drive)*
test_loss_decreases_over_steps, which draws unseeded noise. It failed in 2 of 10 runs on torch 2.10 and 1 of 10 on torch 2.15. The 6 skips are the animal pipeline, which needs DeepLabCut (not installed).Seeded outputs, torch 2.15 against torch 2.10:
seed=0): at most 3.9e-7 m apart on Python 3.12, 3.13 and 3.14. The poses reach up to 1.5 m.demo/images/running.png(YOLO, HRNet and lifting,seed=0): identical 2D keypoints and scores, and 3D poses at most 1.8e-7 m apart.Not tested:
Seen while testing, not changed here
test_loss_decreases_over_stepsfails now and then on any torch version. Seeding it would make it deterministic.tests/test_demo_human.py::test_2d_pose_estimationdownloads the HRNet and YOLO weights from Google Drive, and pip-installsgdownat runtime, but is not markednetwork. In a venv without pip, such as one made byuv, it fails withModuleNotFoundError: gdown.continue-on-error: true, so test failures don't fail the job.I can open separate PRs for any of these.
🤖 Generated with Claude Code