vanvalenlab / deepcell-tf

Deep Learning Library for Single Cell Analysis
https://deepcell.readthedocs.io
Other
413 stars 95 forks source link

Support for Python 3.11? #711

Closed dsudar closed 6 months ago

dsudar commented 6 months ago

Is your feature request related to a problem? Please describe. The documentation only indicates support up to Python 3.10. Before I go down the dependencies rabbit hole, has anyone successfully used deepcell/mesmer prediction under Python 3.11? If yes, how? If not, is there a plan to provide support?

Describe the solution you'd like Either there is a trivial solution with ideally a few how-to steps or an update to the package to support running under Python 3.11.

Describe alternatives you've considered Due to other code that requires Python 3.11, I can't reasonably run under 3.10. I considered trying myself to see how far I get with installing under 3.11, I thought I ask the experts first.

Additional context Add any other context or screenshots about the feature request here.

rossbar commented 6 months ago

The documentation only indicates support up to Python 3.10. Before I go down the dependencies rabbit hole, has anyone successfully used deepcell/mesmer prediction under Python 3.11?

The documentation is correct - the latest version of Python that deepcell supports is Python 3.10. The limiter here is Tensorflow - the latest release (0.12.9) was trained on Tensorflow 2.8, which supports Python versions 3.7-3.10.

If not, is there a plan to provide support?

It would be great to modernize, though this will involve quite a bit of work. Any contributions related to the successful training and benchmarking of the model on newer versions of Tensorflow (>= 2.9) would certainly be of interest!

Either there is a trivial solution with ideally a few how-to steps or an update to the package to support running under Python 3.11.

The most sure-fire way to guarantee you have the right Python, tensorflow, and CUDA support windows is to use a containerized version of the model. See e.g. https://hub.docker.com/u/vanvalenlab

Due to other code that requires Python 3.11, I can't reasonably run under 3.10. I considered trying myself to see how far I get with installing under 3.11, I thought I ask the experts first.

It may be possible, though it will likely require building Tensorflow 2.8 from source on Python 3.11 for your platform, or finding wheels/pkged versions from 3rd-party packagers. It may be worth looking on conda-forge. Even then, deepcell-tf is not tested on 3.11, so it still may not work (though if you can find the right set of dependencies I'd expect it would be fine).