安装指南#
目录#
MONAI 的核心功能使用 Python 3 (>= 3.9) 编写,仅需要 Numpy 和 Pytorch。
该软件包目前通过 Github 作为主要源代码仓库和 Python 包索引 (PyPI) 进行分发。预构建的 Docker 镜像可在 DockerHub 上获取。
要安装可选功能,例如使用 Nibabel 处理 NIfTI 文件,或使用 Pytorch Ignite 构建工作流,请按照以下说明操作
下面的安装命令通常会安装 PyTorch 的 CPU 版本。要安装支持 GPU 的 PyTorch
安装最新的 NVIDIA 驱动程序。
查看 PyTorch 官方指南,了解推荐的 CUDA 版本。对于 Pip 包,用户需要手动下载 CUDA,将其安装到系统上,并确保正确设置了 CUDA_PATH。
继续按照指南安装 PyTorch。
使用下面描述的一种方式安装 MONAI。
从 PyPI 安装#
里程碑版本#
要安装当前的里程碑版本
pip install monai
每周预览版#
要安装每周预览版
pip install monai-weekly
每周构建版本会在每周日发布到 PyPI,带有预发布版本号 dev[%y%U]
。要报告每周预览版中的任何问题,请包含版本和提交信息
python -c "import monai; print(monai.__version__); print(monai.__commit_id__)"
系统中 monai
和 monai-weekly
包的共存可能会导致命名空间冲突和 ImportError
。这通常是由于在未先卸载现有包的情况下同时运行 pip install monai
和 pip install monai-weekly
导致的。要解决此问题,请卸载这两个包,然后重试安装。
卸载软件包#
使用 pip install
安装的软件包可以通过以下方式移除
pip uninstall -y monai
pip uninstall -y monai-weekly
从 conda-forge 安装#
要安装当前的里程碑版本
conda install -c conda-forge monai
从 GitHub 安装#
(如果您已经使用 pip install monai
安装了 PyPI 发布版本,请在使用本节命令之前运行 pip uninstall monai
。因为 pip
默认会优先选择里程碑版本。)
里程碑版本目前计划每隔几个月发布。由于代码库正在积极开发中,您可能希望从 GitHub 安装 MONAI 以获取最新功能
选项 1 (作为系统范围模块的一部分):#
pip install git+https://github.com/Project-MONAI/MONAI#egg=monai
或者,要构建带有 MONAI C++/CUDA 扩展的版本
BUILD_MONAI=1 pip install git+https://github.com/Project-MONAI/MONAI#egg=monai
要构建扩展,如果系统环境中已经安装了 PyTorch,可能更倾向于使用 --no-build-isolation
BUILD_MONAI=1 pip install --no-build-isolation git+https://github.com/Project-MONAI/MONAI#egg=monai
此命令将从 GitHub 下载并安装 MONAI 的当前 dev
分支。
此文档网站默认显示最新版本的信息。
选项 2 (可编辑安装):#
要安装 MONAI 的可编辑版本,建议直接克隆代码库
git clone https://github.com/Project-MONAI/MONAI.git
此命令将在当前目录中创建一个 MONAI/
文件夹。您可以通过运行以下命令进行安装
cd MONAI/
python setup.py develop
或者,要构建带有 MONAI C++/CUDA 扩展并安装
cd MONAI/
BUILD_MONAI=1 python setup.py develop
# for MacOS
BUILD_MONAI=1 CC=clang CXX=clang++ python setup.py develop
要卸载此软件包,请运行
cd MONAI/
python setup.py develop --uninstall
# to further clean up the MONAI/ folder (Bash script)
./runtests.sh --clean
或者,只需将克隆的源代码的根目录(例如,/workspace/Documents/MONAI
)添加到您的 $PYTHONPATH
中,代码库即可使用(不包含 MONAI C++/CUDA 扩展的附加功能)。
C++/CUDA 扩展功能目前是实验性的,预编译版本可通过最近发布的 docker 镜像获取。从源代码构建扩展可能需要 Ninja 和 CUDA Toolkit。默认情况下,如果
torch.cuda.is_available()
为 True,则会构建 CUDA 扩展。通过设置环境变量FORCE_CUDA=1
可以强制构建。
验证安装#
您可以通过以下方式验证安装
python -c "import monai; monai.config.print_config()"
如果安装成功,此命令将打印出 MONAI 版本信息,这确认了 MONAI 的核心模块已准备就绪,可以使用了。
MONAI 版本字符串#
MONAI 版本字符串显示您本地安装的当前状态。例如
MONAI version: 0.1.0+144.g52c763d.dirty
0.1.0
表示您的安装基于0.1.0
里程碑版本。+144
表示您的安装比里程碑版本领先 144 个 git 提交。g52c763d
表示您的安装对应于 git 提交哈希52c763d
。dirty
表示您在本地修改了代码库,并且代码库与52c763d
不一致。
从 DockerHub 安装#
确保您已为您的 Linux 发行版安装了 NVIDIA 驱动程序和 Docker 19.03+。请注意,您无需在主机上安装 CUDA Toolkit,但需要安装驱动程序。请在 nvidia-docker 上查找更多信息。
假设您已安装 NVIDIA 驱动程序和 Docker 19.03+,运行以下命令将下载并启动一个包含最新版本 MONAI 的容器。镜像中包含了来自 GitHub 的 MONAI 最新 dev
分支。
docker run --gpus all --rm -ti --ipc=host projectmonai/monai:latest
您也可以通过指定镜像标签来运行里程碑版本的 docker 镜像,例如
docker run --gpus all --rm -ti --ipc=host projectmonai/monai:0.1.0
安装推荐的依赖项#
默认情况下,安装步骤将仅下载并安装 MONAI 的最低要求。可以使用extras 语法安装可选依赖项以支持附加功能。
例如,要安装支持 Nibabel 和 Scikit-image 的 MONAI
git clone https://github.com/Project-MONAI/MONAI.git
cd MONAI/
pip install -e '.[nibabel,skimage]'
或者,要安装所有可选依赖项
git clone https://github.com/Project-MONAI/MONAI.git
cd MONAI/
pip install -e ".[all]"
根据 MONAI 开发环境设置,使用 pip
安装所有可选依赖项
git clone https://github.com/Project-MONAI/MONAI.git
cd MONAI/
pip install -r requirements-dev.txt
根据 MONAI 开发环境设置(environment-dev.yml
),使用 conda
安装所有可选依赖项(这将安装 PyTorch 以及 pytorch-cuda
,有关安装 PyTorch 的更多详细信息,请遵循 https://pytorch.ac.cn/get-started/locally/#start-locally)
git clone https://github.com/Project-MONAI/MONAI.git
cd MONAI/
conda create -n <name> python=<ver> # eg 3.9
conda env update -n <name> -f environment-dev.yml
自 MONAI v0.2.0 起,可以通过 PyPI 使用 extras 语法,例如 pip install 'monai[nibabel]'
。
选项包括
[nibabel, skimage, scipy, pillow, tensorboard, gdown, ignite, torchvision, itk, tqdm, lmdb, psutil, cucim, openslide, pandas, einops, transformers, mlflow, clearml, matplotlib, tensorboardX, tifffile, imagecodecs, pyyaml, fire, jsonschema, ninja, pynrrd, pydicom, h5py, nni, optuna, onnx, onnxruntime, zarr, lpips, pynvml, huggingface_hub]
它们分别对应 nibabel
, scikit-image
,scipy
, pillow
, tensorboard
, gdown
, pytorch-ignite
, torchvision
, itk
, tqdm
, lmdb
, psutil
, cucim
, openslide-python
, pandas
, einops
, transformers
, mlflow
, clearml
, matplotlib
, tensorboardX
, tifffile
, imagecodecs
, pyyaml
, fire
, jsonschema
, ninja
, pynrrd
, pydicom
, h5py
, nni
, optuna
, onnx
, onnxruntime
, zarr
, lpips
, nvidia-ml-py
, huggingface_hub
和 pyamg
。
pip install 'monai[all]'
安装所有可选依赖项。