Giter VIP home page Giter VIP logo

Comments (5)

giorgiaquerin avatar giorgiaquerin commented on June 24, 2024 2

from spinalcordtoolbox.

mguaypaq avatar mguaypaq commented on June 24, 2024 1

Developer note: We may want to consider pinning onnxruntime<1.16.0 for as long as we can justifiably support Catalina? That said, Catalina reached "End-of-Life" on November 20, 2022, meaning that it no longer receives security updates from Apple. So, I would still urge users to upgrade if their hardware supports it (and perhaps for that reason, it would be unwise to pin onnxruntime<1.16.0).

Note that we can't even run our test suite for macos Catalina, because GitHub Actions removed support for it in 2022, see #3852. So I think we already can't justifiably support it.

from spinalcordtoolbox.

mguaypaq avatar mguaypaq commented on June 24, 2024

Hi Giorgia,

Thanks for reaching out. Looking at the install log, it looks like you're running macos version 10.15.7 (Catalina), which was released in 2019. Unfortunately, it looks like one of the libraries that SCT 6.2 depends on (called onnxruntime) requires macos version at least 11 (Big Sur, released in 2020).

But, it looks like the previous version, SCT 6.1, should still be compatible with macos version 10.15.7.

So, I think your two best options would be:

  • Either upgrade to a more recent version of macos before installing SCT 6.2 (this is probably ideal if you can do it).
  • Or stay on macos 10.15.7, and install SCT 6.1 for now.

from spinalcordtoolbox.

joshuacwnewton avatar joshuacwnewton commented on June 24, 2024

For posterity's sake, here are further technical details that explain why SCT v6.2 requires a version of onnxruntime incompatible with Catalina:

  • For our stable releases, we freeze the package versions in order to ensure a reproducible environment that does not change over time. We want to guarantee that if researchers use a specific version of SCT now, it will still produce identical results 5 years from now.
  • For v6.2, we freeze the latest version of onnxruntime (onnxruntime==1.17.0). More generally speaking, we tend to use the newest versions of packages so that we can stay up to date with security/performance improvements, and catch any update-related bugs as soon as the new versions are released.
  • onnxruntime==1.17.0 specifies onnxruntime-1.17.3-cp39-cp39-macosx_11_0_universal2.whl in its wheel, meaning it is not compatible with macOS 10.x versions. This change first started with 1.17.0; for previous versions, an onnxruntime-1.16.3-cp311-cp311-macosx_10_15_x86_64.whl wheel was offered as well, which supports macOS 10.15 versions.
  • However, if we disregard the "freezing" and look at the development version of SCT, then the allowed version range of onnxruntime is actually much wider:
    onnxruntime>=1.7.0,!=1.16.0
  • So, technically it is still possible to install an earlier version of onnxruntime alongside SCT v6.2. The question becomes: Will the results be identical if a Catalina-compatible version of onnxruntime is installed? My presumption would be yes. onnxruntime is only used to run frozen .ONNX deep learning segmentaion models, which have fixed weights/opset versions/etc. If onnxruntime version updates caused the results to change in a meaningful way, I would be quite surprised, since the whole purpose of ONNX is to enable model interoperability!

For the above reasons, I think it may be possible to install SCT v6.2 on Catalina with the following steps:

# replace the version of `onnxruntime` with an earlier compatible version (https://stackoverflow.com/a/4247319)
sed -i'' -e 's/onnxruntime==1.17.0/onnxruntime==1.15.0/g' /Users/giorgiaquerin/sct_6.2/requirements-freeze.txt
# rerun the 6.2 installer
./Users/giorgiaquerin/sct_6.2/install_sct

I would only do this, though, if you cannot upgrade your version of macOS and need specific features from SCT 6.2 and above. Otherwise, I would stick with one of @mguaypaq's proposed solutions.


Developer note: We may want to consider pinning onnxruntime<1.16.0 for as long as we can justifiably support Catalina? That said, Catalina reached "End-of-Life" on November 20, 2022, meaning that it no longer receives security updates from Apple. So, I would still urge users to upgrade if their hardware supports it (and perhaps for that reason, it would be unwise to pin onnxruntime<1.16.0).

from spinalcordtoolbox.

joshuacwnewton avatar joshuacwnewton commented on June 24, 2024

Wonderful news! Thank you for letting us know. ♥️

from spinalcordtoolbox.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.