diff --git a/Docker/Dockerfile b/Docker/Dockerfile index 9eb14c75..8e4f854e 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -72,7 +72,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ARG PYTHON_VERSION=3.10 -ARG FORGE_VERSION=23.11.0-0 +ARG FORGE_VERSION=24.3.0-0 # Install conda RUN wget --no-check-certificate -qO ~/miniforge.sh \ @@ -189,6 +189,9 @@ SHELL ["/bin/bash", "--login", "-c"] COPY --from=selected_freesurfer_build_image /opt/freesurfer /opt/freesurfer COPY --from=selected_conda_build_image /venv /venv +# Fix for cuda11.8+cudnn8.7 bug+warning: https://github.com/pytorch/pytorch/issues/97041 +RUN if [[ "$DEVICE" == "cu118" ]] ; then cd /venv/python3.10/site-packages/torch/lib && ln -s libnvrtc-*.so.11.2 libnvrtc.so ; fi + # Copy fastsurfer over from the build context and add PYTHONPATH COPY . /fastsurfer/ ENV PYTHONPATH=/fastsurfer:/opt/freesurfer/python/packages \ diff --git a/Docker/README.md b/Docker/README.md index c2f0d319..d5d12af8 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -139,7 +139,7 @@ As you can see, only the tag of the image is changed from gpu to cpu and the sta Here we build an experimental image to test performance when running on AMD GPUs. Note that you need a supported OS and Kernel version and supported GPU for the RocM to work correctly. You need to install the Kernel drivers into your host machine kernel (amdgpu-install --usecase=dkms) for the amd docker to work. For this follow: -https://docs.amd.com/en/latest/deploy/linux/quick_start.html +https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html#rocm-install-quick, https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/amdgpu-install.html#amdgpu-install-dkms and https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/docker.html ```bash PYTHONPATH= @@ -149,9 +149,8 @@ python build.py --device rocm --tag my_fastsurfer:rocm and run segmentation only: ```bash -docker run --rm --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \ - --device=/dev/kfd --device=/dev/dri --group-add video --ipc=host \ - --shm-size 8G \ +docker run --rm --security-opt seccomp=unconfined \ + --device=/dev/kfd --device=/dev/dri --group-add video \ -v /home/user/my_mri_data:/data \ -v /home/user/my_fastsurfer_analysis:/output \ my_fastsurfer:rocm \ @@ -159,12 +158,13 @@ docker run --rm --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \ --sid subjectX --sd /output ``` -Note, we tested on an AMD Radeon Pro W6600, which is [not officially supported](https://docs.amd.com/en/latest/release/gpu_os_support.html), but setting `HSA_OVERRIDE_GFX_VERSION=10.3.0` [inside docker did the trick](https://en.opensuse.org/AMD_OpenCL#ROCm_-_Running_on_unsupported_hardware): +In conflict with the official ROCm documentation (above), we also needed to add the group render `--group-add render` (in addition to `--group-add video`). + +Note, we tested on an AMD Radeon Pro W6600, which is [not officially supported](https://docs.amd.com/en/latest/release/gpu_os_support.html), but setting `HSA_OVERRIDE_GFX_VERSION=10.3.0` [inside docker did the trick](https://en.opensuse.org/SDB:AMD_GPGPU#Using_CUDA_code_with_ZLUDA_and_ROCm): ```bash -docker run --rm --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \ - --device=/dev/kfd --device=/dev/dri --group-add video --ipc=host \ - --shm-size 8G \ +docker run --rm --security-opt seccomp=unconfined \ + --device=/dev/kfd --device=/dev/dri --group-add video --group-add render \ -v /home/user/my_mri_data:/data \ -v /home/user/my_fastsurfer_analysis:/output \ -e HSA_OVERRIDE_GFX_VERSION=10.3.0 \ diff --git a/Docker/build.py b/Docker/build.py index f30c9b08..6467c7bf 100755 --- a/Docker/build.py +++ b/Docker/build.py @@ -30,9 +30,8 @@ Target = Literal['runtime', 'build_common', 'build_conda', 'build_freesurfer', 'build_base', 'runtime_cuda'] CacheType = Literal["inline", "registry", "local", "gha", "s3", "azblob"] -AllDeviceType = Literal["cpu", "cuda", "cu116", "cu117", "cu118", "rocm", "rocm5.1.1", - "rocm5.4.2"] -DeviceType = Literal["cpu", "cu116", "cu117", "cu118", "rocm5.1.1", "rocm5.4.2"] +AllDeviceType = Literal["cpu", "cuda", "cu118", "cu121", "cu124", "rocm", "rocm6.1"] +DeviceType = Literal["cpu", "cu118", "cu121", "cu124", "rocm6.1"] CREATE_BUILDER = "Create builder with 'docker buildx create --name fastsurfer'." CONTAINERD_MESSAGE = ( @@ -59,10 +58,11 @@ class DEFAULTS: # and rocm versions, if pytorch comes with new versions. # torch 1.12.0 comes compiled with cu113, cu116, rocm5.0 and rocm5.1.1 # torch 2.0.1 comes compiled with cu117, cu118, and rocm5.4.2 + # torch 2.4 comes compiled with cu118, cu121, cu124 and rocm6.1 MapDeviceType: Dict[AllDeviceType, DeviceType] = dict( ((d, d) for d in get_args(DeviceType)), - rocm="rocm5.1.1", - cuda="cu117", + rocm="rocm6.1", + cuda="cu124", ) BUILD_BASE_IMAGE = "ubuntu:22.04" RUNTIME_BASE_IMAGE = "ubuntu:22.04" @@ -185,12 +185,12 @@ def make_parser() -> argparse.ArgumentParser: parser.add_argument( "--device", - choices=["cpu", "cuda", "cu117", "cu118", "rocm", "rocm5.4.2"], + choices=["cpu", "cuda", "cu118", "cu121", "cu124", "rocm", "rocm6.1"], required=True, help="""selection of internal build stages to build for a specific platform.
- - cuda: defaults to cu118, cuda 11.8
+ - cuda: defaults to cu124, cuda 12.4
- cpu: only cpu support
- - rocm: defaults to rocm5.4.2 (experimental)""", + - rocm: defaults to rocm6.1 (experimental)""", ) parser.add_argument( "--tag", @@ -231,6 +231,7 @@ def make_parser() -> argparse.ArgumentParser: --cache type=registry,ref=server/fastbuild,mode=max. Will default to the environment variable FASTSURFER_BUILD_CACHE: {cache_kwargs.get('default', 'N/A')}""", + metavar="type={inline,local,...}[,=[,...]]", **cache_kwargs, ) parser.add_argument( diff --git a/Docker/install_env.py b/Docker/install_env.py index 841431ff..3d03d38d 100644 --- a/Docker/install_env.py +++ b/Docker/install_env.py @@ -19,7 +19,7 @@ def mode(arg: str) -> str: if arg in ["base", "cpu"] or \ re.match("^cu\\d+$", arg) or \ - re.match("^rocm\\d+\\.\\d+(\\.\\d+)?$"): + re.match("^rocm\\d+\\.\\d+(\\.\\d+)?$", arg): return arg else: raise argparse.ArgumentTypeError(f"The mode was '{arg}', but should be " diff --git a/FastSurferCNN/data_loader/data_utils.py b/FastSurferCNN/data_loader/data_utils.py index 9f98aa53..dd11302b 100644 --- a/FastSurferCNN/data_loader/data_utils.py +++ b/FastSurferCNN/data_loader/data_utils.py @@ -623,7 +623,7 @@ def read_classes_from_lut(lut_file: str | Path): if lut_file.suffix == ".csv": kwargs["sep"] = "," elif lut_file.suffix == ".txt": - kwargs["delim_whitespace"] = True + kwargs["sep"] = "\\s+" else: raise RuntimeError( f"Unknown LUT file extension {lut_file}, must be csv, txt or tsv." diff --git a/FastSurferCNN/inference.py b/FastSurferCNN/inference.py index cdf5b169..f99fea0a 100644 --- a/FastSurferCNN/inference.py +++ b/FastSurferCNN/inference.py @@ -213,7 +213,9 @@ def load_checkpoint(self, ckpt: Union[str, os.PathLike]): # make sure the model is, where it is supposed to be self.model.to(self.device) - model_state = torch.load(ckpt, map_location=device) + # WARNING: weights_only=False can cause unsafe code execution, but here the + # checkpoint can be considered to be from a safe source + model_state = torch.load(ckpt, map_location=device, weights_only=False) self.model.load_state_dict(model_state["model_state"]) # workaround for mps (move the model back to mps) diff --git a/FastSurferCNN/utils/checkpoint.py b/FastSurferCNN/utils/checkpoint.py index 31052bb4..6663a9e0 100644 --- a/FastSurferCNN/utils/checkpoint.py +++ b/FastSurferCNN/utils/checkpoint.py @@ -228,7 +228,9 @@ def load_from_checkpoint( loaded_epoch : int Epoch number. """ - checkpoint = torch.load(checkpoint_path, map_location="cpu") + # WARNING: weights_only=False can cause unsafe code execution, but here the + # checkpoint can be considered to be from a safe source + checkpoint = torch.load(checkpoint_path, map_location="cpu", weights_only=False) if drop_classifier: classifier_conv = ["classifier.conv.weight", "classifier.conv.bias"] diff --git a/HypVINN/inference.py b/HypVINN/inference.py index 10134526..07953dae 100644 --- a/HypVINN/inference.py +++ b/HypVINN/inference.py @@ -181,7 +181,9 @@ def load_checkpoint(self, ckpt: str): of a model. """ logger.info("Loading checkpoint {}".format(ckpt)) - model_state = torch.load(ckpt, map_location=self.device) + # WARNING: weights_only=False can cause unsafe code execution, but here the + # checkpoint can be considered to be from a safe source + model_state = torch.load(ckpt, map_location=self.device, weights_only=False) self.model.load_state_dict(model_state["model_state"]) def get_modelname(self): diff --git a/env/export_pip-r.sh b/env/export_pip-r.sh index 49433793..9ec14c61 100644 --- a/env/export_pip-r.sh +++ b/env/export_pip-r.sh @@ -48,21 +48,23 @@ echo "Exporting versions from $2..." echo "#" } > $1 -pip_cmd="python --version && pip list --format=freeze --no-color --all --disable-pip-version-check --no-input" +pip_cmd="python --version && pip list --format=freeze --no-color --disable-pip-version-check --no-input" if [ "${2/#.sif}" != "$2" ] then # singularity - cmd="singularity exec $2 /bin/bash -c '$pip_cmd'" + cmd=("singularity" "exec" "$2" "/bin/bash" -c "$pip_cmd") + clean_cmd="singularity exec $2 /bin/bash -c '$pip_cmd'" else # docker - cmd="docker run --entrypoint /bin/bash $2 -c '$pip_cmd'" + clean_cmd="docker run --rm -u : --entrypoint /bin/bash $2 -c '$pip_cmd'" + cmd=("docker" "run" --rm -u "$(id -u):$(id -g)" --entrypoint /bin/bash "$2" -c "$pip_cmd") fi { echo "# Which ran the following command:" - echo "# $cmd" + echo "# $clean_cmd" echo "#" } >> $1 -out=$($cmd) +out=$("${cmd[@]}") hardware=$(echo "$out" | grep "torch==" | cut -d"+" -f2) pyversion=$(echo "$out" | head -n 1 | cut -d" " -f2) { @@ -73,5 +75,3 @@ pyversion=$(echo "$out" | head -n 1 | cut -d" " -f2) echo "" echo "# $out" } >> $1 - -} \ No newline at end of file diff --git a/env/fastsurfer.yml b/env/fastsurfer.yml index ec406b9c..4e3567f3 100644 --- a/env/fastsurfer.yml +++ b/env/fastsurfer.yml @@ -5,28 +5,28 @@ channels: - defaults dependencies: - - h5py=3.7.0 - - lapy=1.0.1 - - matplotlib=3.7.1 - - nibabel=5.1.0 - - numpy=1.25.0 - - pandas=1.5.3 - - pillow=10.0.1 - - pip=23.1.2 - - python=3.10 - - python-dateutil=2.8.2 - - pyyaml=6.0 - - scikit-image=0.19.3 - - scikit-learn=1.2.2 - - scipy=1.10.1 - - setuptools=67.8.0 - - tensorboard=2.12.1 - - tqdm=4.66 - - yacs=0.1.8 - - pip - - pip: - - --extra-index-url https://download.pytorch.org/whl/cu117 - - simpleitk==2.2.1 - - torch==2.0.1 - - torchio==0.18.83 - - torchvision==0.15.2 +- h5py=3.11.0 +- lapy=1.1.0 +- matplotlib=3.9.2 +- nibabel=5.2.1 +- numpy=1.26.4 +- pandas=2.2.2 +- pillow=10.4.0 +- pip=24.2 +- python=3.10 +- python-dateutil=2.9.0 +- pyyaml=6.0.2 +- requests=2.32.3 +- scikit-image=0.24.0 +- scikit-learn=1.5.1 +- scipy=1.14.1 +- setuptools=72.2.0 +- tensorboard=2.17.1 +- tqdm=4.66.5 +- yacs=0.1.8 +- pip: + - --extra-index-url https://download.pytorch.org/whl/cu124 + - simpleitk==2.4.0 + - torch==2.4.0+cu124 + - torchio==0.19.9 + - torchvision==0.19.0+cu124 diff --git a/requirements.cpu.txt b/requirements.cpu.txt new file mode 100644 index 00000000..fe88cd9e --- /dev/null +++ b/requirements.cpu.txt @@ -0,0 +1,104 @@ +# +# This file is autogenerated by kueglerd from deepmi/fastsurfer:cpu-v2.3.0 +# by the following command from FastSurfer: +# +# ./requirements.cpu.txt deepmi/fastsurfer:cpu-v2.3.0 +# +# Which ran the following command: +# docker run --rm -u : --entrypoint /bin/bash deepmi/fastsurfer:cpu-v2.3.0 -c 'python --version && pip list --format=freeze --no-color --disable-pip-version-check --no-input' +# +# +# Image was configured for cpu using python version 3.10.14 +# +--extra-index-url https://download.pytorch.org/whl/cpu + +# Python 3.10.14 +absl-py==2.1.0 +Brotli==1.1.0 +cached-property==1.5.2 +certifi==2024.7.4 +cffi==1.17.0 +charset-normalizer==3.3.2 +click==8.1.7 +colorama==0.4.6 +contourpy==1.2.1 +cycler==0.12.1 +Deprecated==1.2.14 +filelock==3.15.4 +fonttools==4.53.1 +fsspec==2024.6.1 +grpcio==1.62.2 +h2==4.1.0 +h5py==3.11.0 +hpack==4.0.0 +humanize==4.10.0 +hyperframe==6.0.1 +idna==3.8 +imagecodecs==2024.6.1 +imageio==2.35.1 +importlib_metadata==8.4.0 +importlib_resources==6.4.4 +Jinja2==3.1.4 +joblib==1.4.2 +kiwisolver==1.4.5 +lapy==1.1.0 +lazy_loader==0.4 +Markdown==3.6 +markdown-it-py==3.0.0 +MarkupSafe==2.1.5 +matplotlib==3.9.2 +mdurl==0.1.2 +mpmath==1.3.0 +munkres==1.1.4 +networkx==3.3 +nibabel==5.2.1 +numpy==1.26.4 +packaging==24.1 +pandas==2.2.2 +pillow==10.4.0 +pip==24.2 +plotly==5.23.0 +protobuf==4.25.3 +psutil==6.0.0 +pycparser==2.22 +Pygments==2.18.0 +pyparsing==3.1.4 +PySide6==6.7.2 +PySocks==1.7.1 +python-dateutil==2.9.0 +pytz==2024.1 +PyWavelets==1.7.0 +PyYAML==6.0.2 +requests==2.32.3 +rich==13.8.0 +scikit-image==0.24.0 +scikit-learn==1.5.1 +scikit-sparse==0.4.14 +scipy==1.14.1 +setuptools==72.2.0 +shellingham==1.5.4 +shiboken6==6.7.2 +SimpleITK==2.4.0 +six==1.16.0 +sympy==1.13.2 +tenacity==9.0.0 +tensorboard==2.17.1 +tensorboard-data-server==0.7.0 +threadpoolctl==3.5.0 +tifffile==2024.8.24 +torch==2.4.0+cpu +torchio==0.19.9 +torchvision==0.19.0+cpu +tornado==6.4.1 +tqdm==4.66.5 +typer==0.12.5 +typing_extensions==4.12.2 +tzdata==2024.1 +unicodedata2==15.1.0 +urllib3==2.2.2 +Werkzeug==3.0.4 +wheel==0.44.0 +wrapt==1.16.0 +yacs==0.1.8 +zipp==3.20.0 +zstandard==0.23.0 diff --git a/requirements.txt b/requirements.txt index 4ee513bf..f168f221 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,210 +1,117 @@ # -# This file is autogenerated by pip-compile with Python 3.10 -# by the following command: +# This file is autogenerated by kueglerd from deepmi/fastsurfer:cu124-v2.3.0 +# by the following command from FastSurfer: # -# pip-compile requirements.in +# ./requirements.txt deepmi/fastsurfer:cu124-v2.3.0 # ---extra-index-url https://download.pytorch.org/whl/cu117 +# Which ran the following command: +# docker run --rm -u : --entrypoint /bin/bash deepmi/fastsurfer:cu124-v2.3.0 -c 'python --version && pip list --format=freeze --no-color --disable-pip-version-check --no-input' +# +# +# Image was configured for cu124 using python version 3.10.14 +# +--extra-index-url https://download.pytorch.org/whl/cu124 -absl-py==2.0.0 - # via tensorboard -cachetools==5.3.2 - # via google-auth -certifi==2023.7.22 - # via requests +# Python 3.10.14 +absl-py==2.1.0 +Brotli==1.1.0 +cached-property==1.5.2 +certifi==2024.7.4 +cffi==1.17.0 charset-normalizer==3.3.2 - # via requests click==8.1.7 - # via torchio -cmake==3.27.7 - # via triton -contourpy==1.2.0 - # via matplotlib +colorama==0.4.6 +contourpy==1.2.1 cycler==0.12.1 - # via matplotlib -deprecated==1.2.14 - # via torchio -filelock==3.13.1 - # via - # torch - # triton -fonttools==4.44.3 - # via matplotlib -google-auth==2.23.4 - # via - # google-auth-oauthlib - # tensorboard -google-auth-oauthlib==1.0.0 - # via tensorboard -grpcio==1.59.2 - # via tensorboard -h5py==3.7.0 - # via -r requirements.in -humanize==4.8.0 - # via torchio -idna==3.4 - # via requests -imageio==2.32.0 - # via scikit-image -jinja2==3.1.2 - # via torch -joblib==1.3.2 - # via scikit-learn +Deprecated==1.2.14 +filelock==3.15.4 +fonttools==4.53.1 +fsspec==2024.6.1 +grpcio==1.62.2 +h2==4.1.0 +h5py==3.11.0 +hpack==4.0.0 +humanize==4.10.0 +hyperframe==6.0.1 +idna==3.8 +imagecodecs==2024.6.1 +imageio==2.35.1 +importlib_metadata==8.4.0 +importlib_resources==6.4.4 +Jinja2==3.1.4 +joblib==1.4.2 kiwisolver==1.4.5 - # via matplotlib -lapy==1.0.1 - # via -r requirements.in -lit==17.0.5 - # via triton -markdown==3.5.1 - # via tensorboard -markupsafe==2.1.3 - # via - # jinja2 - # werkzeug -matplotlib==3.7.1 - # via -r requirements.in +lapy==1.1.0 +lazy_loader==0.4 +Markdown==3.6 +markdown-it-py==3.0.0 +MarkupSafe==2.1.5 +matplotlib==3.9.2 +mdurl==0.1.2 mpmath==1.3.0 - # via sympy -networkx==3.2.1 - # via - # scikit-image - # torch -nibabel==5.1.0 - # via - # -r requirements.in - # lapy - # torchio -numpy==1.25.0 - # via - # -r requirements.in - # contourpy - # h5py - # imageio - # lapy - # matplotlib - # nibabel - # pandas - # pywavelets - # scikit-image - # scikit-learn - # scipy - # tensorboard - # tifffile - # torchio - # torchvision -oauthlib==3.2.2 - # via requests-oauthlib -packaging==23.2 - # via - # matplotlib - # nibabel - # plotly - # scikit-image -pandas==1.5.3 - # via -r requirements.in -pillow==10.0.1 - # via - # -r requirements.in - # imageio - # matplotlib - # scikit-image - # torchvision -plotly==5.18.0 - # via lapy -protobuf==4.25.1 - # via tensorboard -psutil==5.9.6 - # via lapy -pyasn1==0.5.0 - # via - # pyasn1-modules - # rsa -pyasn1-modules==0.3.0 - # via google-auth -pyparsing==3.1.1 - # via matplotlib -python-dateutil==2.8.2 - # via - # -r requirements.in - # matplotlib - # pandas -pytz==2023.3.post1 - # via pandas -pywavelets==1.4.1 - # via scikit-image -pyyaml==6.0 - # via - # -r requirements.in - # yacs -requests==2.31.0 - # via - # requests-oauthlib - # tensorboard - # torchvision -requests-oauthlib==1.3.1 - # via google-auth-oauthlib -rsa==4.9 - # via google-auth -scikit-image==0.19.3 - # via -r requirements.in -scikit-learn==1.2.2 - # via -r requirements.in -scipy==1.10.1 - # via - # -r requirements.in - # lapy - # scikit-image - # scikit-learn - # torchio -simpleitk==2.2.1 - # via - # -r requirements.in - # torchio +munkres==1.1.4 +networkx==3.3 +nibabel==5.2.1 +numpy==1.26.4 +nvidia-cublas-cu12==12.4.2.65 +nvidia-cuda-cupti-cu12==12.4.99 +nvidia-cuda-nvrtc-cu12==12.4.99 +nvidia-cuda-runtime-cu12==12.4.99 +nvidia-cudnn-cu12==9.1.0.70 +nvidia-cufft-cu12==11.2.0.44 +nvidia-curand-cu12==10.3.5.119 +nvidia-cusolver-cu12==11.6.0.99 +nvidia-cusparse-cu12==12.3.0.142 +nvidia-nccl-cu12==2.20.5 +nvidia-nvjitlink-cu12==12.4.99 +nvidia-nvtx-cu12==12.4.99 +packaging==24.1 +pandas==2.2.2 +pillow==10.4.0 +pip==24.2 +plotly==5.23.0 +protobuf==4.25.3 +psutil==6.0.0 +pycparser==2.22 +Pygments==2.18.0 +pyparsing==3.1.4 +PySide6==6.7.2 +PySocks==1.7.1 +python-dateutil==2.9.0 +pytz==2024.1 +PyWavelets==1.7.0 +PyYAML==6.0.2 +requests==2.32.3 +rich==13.7.1 +scikit-image==0.24.0 +scikit-learn==1.5.1 +scikit-sparse==0.4.14 +scipy==1.14.1 +setuptools==72.2.0 +shellingham==1.5.4 +shiboken6==6.7.2 +SimpleITK==2.4.0 six==1.16.0 - # via python-dateutil -sympy==1.12 - # via torch -tenacity==8.2.3 - # via plotly -tensorboard==2.12.1 - # via -r requirements.in -tensorboard-data-server==0.7.2 - # via tensorboard -tensorboard-plugin-wit==1.8.1 - # via tensorboard -threadpoolctl==3.2.0 - # via scikit-learn -tifffile==2023.9.26 - # via scikit-image -torch==2.0.1+cu117 - # via - # -r requirements.in - # torchio - # torchvision - # triton -torchio==0.18.83 - # via -r requirements.in -torchvision==0.15.2+cu117 - # via -r requirements.in -tqdm==4.65.0 - # via - # -r requirements.in - # torchio -triton==2.0.0 - # via torch -typing-extensions==4.8.0 - # via torch -urllib3==2.1.0 - # via requests -werkzeug==3.0.1 - # via tensorboard -wheel==0.41.3 - # via tensorboard +sympy==1.13.2 +tenacity==9.0.0 +tensorboard==2.17.1 +tensorboard-data-server==0.7.0 +threadpoolctl==3.5.0 +tifffile==2024.8.24 +torch==2.4.0+cu124 +torchio==0.19.9 +torchvision==0.19.0+cu124 +tornado==6.4.1 +tqdm==4.66.5 +triton==3.0.0 +typer==0.12.5 +typing_extensions==4.12.2 +tzdata==2024.1 +unicodedata2==15.1.0 +urllib3==2.2.2 +Werkzeug==3.0.4 +wheel==0.44.0 wrapt==1.16.0 - # via deprecated yacs==0.1.8 - # via -r requirements.in - -# The following packages are considered to be unsafe in a requirements file: -# setuptools +zipp==3.20.0 +zstandard==0.23.0 diff --git a/requirements_cpu.txt b/requirements_cpu.txt deleted file mode 100644 index 2e342b12..00000000 --- a/requirements_cpu.txt +++ /dev/null @@ -1,201 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.10 -# by the following command: -# -# pip-compile --output-file=requirements_cpu.txt requirements.in -# ---extra-index-url https://download.pytorch.org/whl/cpu - -absl-py==2.0.0 - # via tensorboard -cachetools==5.3.2 - # via google-auth -certifi==2023.7.22 - # via requests -charset-normalizer==3.3.2 - # via requests -click==8.1.7 - # via torchio -contourpy==1.2.0 - # via matplotlib -cycler==0.12.1 - # via matplotlib -deprecated==1.2.14 - # via torchio -filelock==3.13.1 - # via torch -fonttools==4.44.3 - # via matplotlib -google-auth==2.23.4 - # via - # google-auth-oauthlib - # tensorboard -google-auth-oauthlib==1.0.0 - # via tensorboard -grpcio==1.59.2 - # via tensorboard -h5py==3.7.0 - # via -r requirements.in -humanize==4.8.0 - # via torchio -idna==3.4 - # via requests -imageio==2.32.0 - # via scikit-image -jinja2==3.1.2 - # via torch -joblib==1.3.2 - # via scikit-learn -kiwisolver==1.4.5 - # via matplotlib -lapy==1.0.1 - # via -r requirements.in -markdown==3.5.1 - # via tensorboard -markupsafe==2.1.3 - # via - # jinja2 - # werkzeug -matplotlib==3.7.1 - # via -r requirements.in -mpmath==1.3.0 - # via sympy -networkx==3.2.1 - # via - # scikit-image - # torch -nibabel==5.1.0 - # via - # -r requirements.in - # lapy - # torchio -numpy==1.25.0 - # via - # -r requirements.in - # contourpy - # h5py - # imageio - # lapy - # matplotlib - # nibabel - # pandas - # pywavelets - # scikit-image - # scikit-learn - # scipy - # tensorboard - # tifffile - # torchio - # torchvision -oauthlib==3.2.2 - # via requests-oauthlib -packaging==23.2 - # via - # matplotlib - # nibabel - # plotly - # scikit-image -pandas==1.5.3 - # via -r requirements.in -pillow==10.0.1 - # via - # -r requirements.in - # imageio - # matplotlib - # scikit-image - # torchvision -plotly==5.18.0 - # via lapy -protobuf==4.25.1 - # via tensorboard -psutil==5.9.6 - # via lapy -pyasn1==0.5.0 - # via - # pyasn1-modules - # rsa -pyasn1-modules==0.3.0 - # via google-auth -pyparsing==3.1.1 - # via matplotlib -python-dateutil==2.8.2 - # via - # -r requirements.in - # matplotlib - # pandas -pytz==2023.3.post1 - # via pandas -pywavelets==1.4.1 - # via scikit-image -pyyaml==6.0 - # via - # -r requirements.in - # yacs -requests==2.31.0 - # via - # requests-oauthlib - # tensorboard - # torchvision -requests-oauthlib==1.3.1 - # via google-auth-oauthlib -rsa==4.9 - # via google-auth -scikit-image==0.19.3 - # via -r requirements.in -scikit-learn==1.2.2 - # via -r requirements.in -scipy==1.10.1 - # via - # -r requirements.in - # lapy - # scikit-image - # scikit-learn - # torchio -simpleitk==2.2.1 - # via - # -r requirements.in - # torchio -six==1.16.0 - # via python-dateutil -sympy==1.12 - # via torch -tenacity==8.2.3 - # via plotly -tensorboard==2.12.1 - # via -r requirements.in -tensorboard-data-server==0.7.2 - # via tensorboard -tensorboard-plugin-wit==1.8.1 - # via tensorboard -threadpoolctl==3.2.0 - # via scikit-learn -tifffile==2023.9.26 - # via scikit-image -torch==2.0.1+cpu - # via - # -r requirements.in - # torchio - # torchvision -torchio==0.18.83 - # via -r requirements.in -torchvision==0.15.2+cpu - # via -r requirements.in -tqdm==4.65.0 - # via - # -r requirements.in - # torchio -typing-extensions==4.8.0 - # via torch -urllib3==2.1.0 - # via requests -werkzeug==3.0.1 - # via tensorboard -wheel==0.41.3 - # via tensorboard -wrapt==1.16.0 - # via deprecated -yacs==0.1.8 - # via -r requirements.in - -# The following packages are considered to be unsafe in a requirements file: -# setuptools