Docker部署nnunetv2的实现步骤
作者:Tiandaren
本文主要介绍了Docker部署nnunetv2的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
前言:感觉一些教程没必要说那么多,直接贴出重点的配置文件。如果有不懂的,可以把此文档丢给gpt,配合自己的环境一同服用。
首先,在 nnunet
路径下创建一个 Dockerfile
。
由于我已经完成了 nnUNet
的训练,所以不需要将相关数据全部上传到容器中,而是只保留源码。
# 使用适当的基础镜像(如 pytorch 官方镜像) FROM pytorch/pytorch:latest # 更新 apt-get 并安装必要的工具和库 RUN apt-get update && apt-get install -y vim \ && apt-get install -y --no-install-recommends \ python3-pip \ python3-setuptools \ build-essential \ && apt-get clean \ && python -m pip install --upgrade pip # 设置工作目录 WORKDIR /workspace # 将项目代码复制到容器中 COPY ./nnunetv2 /workspace COPY requirements.txt /workspace # 安装项目依赖 RUN pip install --no-cache-dir -r requirements.txt RUN pip install nnunetv2 # 配置 nnUNet 的环境变量 ENV nnUNet_raw="/workspace/nnUNet_raw" ENV nnUNet_preprocessed="/workspace/nnUNet_preprocessed" ENV nnUNet_results="/workspace/nnUNet_trained_models" # 默认启动命令 CMD ["/bin/bash"]
构建
docker build -t nnunet_docker:0.0.1 .
需要注意的是,nnUNet
已经更新到了 v2 版本,因此环境变量名称也发生了变化。相比于旧版,v2 版本的环境变量已经不再是:
# 旧版配置 ENV nnUNet_raw_data_base="/workspace/DATASET/nnUNet_raw" ENV nnUNet_preprocessed="/workspace/DATASET/nnUNet_preprocessed" ENV RESULTS_FOLDER="/workspace/DATASET/nnUNet_trained_models"
以下是我所使用的 requirements.txt
文件:
torch>=2.1.2 acvl-utils<0.3,>=0.2 dynamic-network-architectures<0.4,>=0.3.1 tqdm dicom2nifti scipy batchgenerators>=0.25 numpy scikit-learn scikit-image>=0.19.3 SimpleITK>=2.2.1 pandas graphviz tifffile requests nibabel matplotlib seaborn imagecodecs yacs batchgeneratorsv2>=0.2 einops flask black ruff pre-commit
需要注意的是,原版的 requirements.txt
文件中包含了一个 [dev]
部分,可能会导致错误,可以直接删除这一部分。
在构建好镜像后,运行以下命令启动容器:
docker run --rm -it --gpus all \ -v /data/xtx/nnUNet/nnUNetFrame/DATASET/nnUNet_raw:/workspace/nnUNet_raw \ -v /data/xtx/nnUNet/nnUNetFrame/DATASET/nnUNet_preprocessed:/workspace/nnUNet_preprocessed \ -v /data/xtx/nnUNet/nnUNetFrame/DATASET/nnUNet_trained_models:/workspace/nnUNet_trained_models \ -p 5000:5000 \ --ipc=host nnunet_docker:0.0.1
这里由于我使用了一个监听脚本进行部署,因此需要额外映射端口。
到此这篇关于Docker部署nnunetv2的实现步骤的文章就介绍到这了,更多相关Docker部署nnunetv2内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!