首页 / 博客 / DeepLabCut 3.0.1
ENGINEERING_BLOG · 2026.09.07

DeepLabCut 3.0.1 在 Mac 怎么装:2026 无 CUDA 科研方案

实验室里没有 NVIDIA GPU,你却需要先完成动物视频标注和姿态估计验证。

最快的结论是:DeepLabCut 3.0.1 可以安装在 Mac 上,新项目优先使用 PyTorch;MPS 只能覆盖部分模型和操作,不能当作 CUDA 的完整替代。 本周先用一段脱敏视频完成 GUI 标注、项目重开、设备识别和一次推理,再决定是否保留 Linux NVIDIA GPU 或采用双轨环境。

最后更新于 2026 年 9 月 7 日,版本与平台信息核实自官方发布页、安装文档、PyTorch 配置资料和 napari-deeplabcut 文档。

这篇文章适合三类人:第一次做动物姿态估计、需要低门槛 GUI 环境的研究生;正在把 DeepLabCut 2.x 项目迁移到 3.x 的科研人员;以及实验室没有 Mac 或 NVIDIA GPU,需要先验证远程环境再做设备决策的技术负责人。

SECTION 01 先确定路线:Mac 能做什么,不能替代什么?

DeepLabCut 3.0.1 的官方安装文档明确列出 macOS、Windows 和 Linux 为支持平台,并要求使用 Python 3.10—3.12 环境。3.x 默认采用 PyTorch 引擎,同时保留 TensorFlow 作为可选后端,因此“能否在 Mac 上安装”与“能否用 Mac 完成全部训练”是两个不同问题。

任务 Apple Silicon Mac Linux NVIDIA GPU 推荐决策
项目创建、目录管理 ✅ 适合 ✅ 适合 Mac 或 Linux 均可
napari GUI 标注 ✅ 适合 ✅ 适合 优先选择交互方便的环境
CPU 推理与结果检查 ✅ 可行 ✅ 可行 用小样本先验收
MPS 模型验证 ⚠️ 仅部分模型与操作 不适用 逐模型核对,不作默认承诺
CUDA 高负载训练 ❌ 不支持 CUDA ✅ 适合 保留 Linux NVIDIA GPU
旧 TensorFlow 项目复现 ⚠️ 需单独验证 ✅ 更容易复现 原环境不要直接覆盖

DeepLabCut 的 PyTorch 设备配置说明指出,device: auto 会在有 NVIDIA GPU 时选择 CUDA,否则通常回退到 CPU;在 Apple Silicon 上,某些模型可以使用 mps,但部分 HRNet 工作流仍可能需要 CPU,而部分 ResNet 工作流可以利用 Apple GPU。

因此,你可以按下面的否决条件分流:

  • 只需要 GUI 标注、项目整理、少量推理:选择 Mac 或远程 Mac。
  • 需要验证某个 PyTorch 模型是否能在 Apple GPU 上运行:先用代表性视频做 MPS 验收。
  • 依赖特定模型、长时间训练、稳定 CUDA 算子或大规模批处理:保留 Linux NVIDIA GPU。
  • 既要 Mac 专属 GUI 体验,又要稳定训练:采用 Mac + Linux GPU 双轨,不要强行让单台 Mac 承担全部环节。

SECTION 02 第一条时间线:先把独立环境装起来

第 1 步:确认 Python 与环境管理器

官方文档推荐在独立环境中安装 DeepLabCut,而不是直接把依赖塞进系统 Python。你可以使用 Conda 或其他隔离方式;下面示例只保留完成 GUI、版本检查和最小验收所需的命令。

conda create -n deeplabcut301 python=3.12
conda activate deeplabcut301

官方当前安装说明支持 Python 3.10—3.12。不要因为系统里已经有 Python 3.13 就直接复用;科研环境首先要保证依赖解析和项目复现,而不是追求系统解释器最新。

第 2 步:安装 GUI 版本

新项目建议先安装 PyTorch 路线的 GUI 组件:

pip install "deeplabcut[gui]"

如果你要使用官方 Model Zoo,再额外安装:

pip install "deeplabcut[gui,modelzoo]"

官方说明中,deeplabcut[gui] 会包含基于 napari 的标注界面;Model Zoo 是可选组件,不需要在第一次安装时强行加入。先完成基础闭环,再决定是否使用预训练模型,可以减少下载和依赖排错范围。

第 3 步:核对版本与 GUI 启动

python -c "import deeplabcut; print(deeplabcut.__version__)"
python -m deeplabcut

官方新手指南使用 python -m deeplabcut 启动 GUI。版本检查的价值不只是确认“安装成功”,还可以在课题组交付时把解释器、DeepLabCut 版本和项目目录记录下来,避免不同成员使用不同环境导致结果无法回归。

当前官方发布页将 3.0.1 列为稳定版本,并涉及文档、结构化配置、GUI 路径处理和 PyTorch 依赖等方面的更新。你应以 DeepLabCut 版本发布记录中的稳定标签为准,不要把开发分支或预发布版本直接用于正在产出论文数据的项目。

安装目标 命令 适用情况 不建议做法
基础命令行与 PyTorch pip install deeplabcut 推理、脚本和无 GUI 流程 直接装进系统 Python
GUI 标注 pip install "deeplabcut[gui]" 新手、人工标注、项目管理 先导入完整实验数据
GUI + Model Zoo pip install "deeplabcut[gui,modelzoo]" 需要预训练模型验证 未确认模型引擎就直接训练
旧 TensorFlow 项目 pip install "deeplabcut[tf]" 迁移和历史结果复现 与 PyTorch 依赖混在一个环境

注意: DeepLabCut 3.x 不是简单的“把旧版本升级一下”。项目标注数据可以继续利用,但引擎、配置文件、训练参数和推理输出都需要独立回归;旧环境仍能复现实验时,不要用新环境覆盖它。

SECTION 03 第二条时间线:把 GUI 标注闭环验收,而不是只看软件能否打开

首次使用者不要一启动 GUI 就导入几十 GB 的完整行为视频。先准备一段脱敏、可重复使用的短视频,以及一个只读备份目录;你的目标是验证路径、标注文件和项目结构,而不是马上追求模型精度。

第 4 步:创建项目并使用小样本视频

在 GUI 中创建新项目时,建议使用不含空格的项目名,并把项目目录放在一个明确、可备份的位置。官方新手指南将项目创建、项目位置、引擎选择和后续标注作为连续流程;新项目通常选择 PyTorch 引擎。

最低验收动作如下:

  1. 新建一个测试项目,记录项目名、实验者名称和视频路径。
  2. 导入一段脱敏的 .mp4.avi.mov 视频。
  3. 抽取少量帧,不要直接对全部数据做批量抽帧。
  4. 打开 napari 标注界面,放置至少一组关键点。
  5. 保存标注文件,关闭 GUI 后重新打开项目。
  6. 检查保存后的项目目录和 config.yaml 是否仍能被识别。

napari-deeplabcut 官方使用说明列出的视频输入包括 .mp4.avi.mov,同时支持图像文件夹、DeepLabCut 的 config.yaml.h5 标注文件。

第 5 步:确认 napari 文件位置没有错位

napari-deeplabcut 并不是只要打开一组图片就能完整工作。官方说明指出,项目配置、labeled-data 目录和 CollectedData_<ScorerName>.h5 文件之间存在路径关系;部分功能要求 config.yaml 位于标注文件上方约定的项目结构中。

你至少要检查以下结构:

my-dlc-project/
├── config.yaml
└── labeled-data/
    └── test-video/
        ├── img00001.png
        └── CollectedData_researcher.h5

需要特别注意的是,CSV 文件可以帮助你查看或辅助处理标注,但 .h5 文件仍是训练使用的权威标注文件。保存时只选中正确的 Points 图层;如果同时选中多个图层,插件可能为了避免歧义而不保存。

通过标准不是“napari 能打开”,而是:

  • 关键点能够放置、移动并保存;
  • 项目关闭后可以重新打开;
  • config.yaml 能被重新定位;
  • 标注文件仍位于预期项目目录;
  • 同一段脱敏视频可以再次完成一次可复核的标注和分析。

如果你要在实验室没有 Mac 的情况下验证 GUI,可以将这一组动作放到 VPSNIX 的远程 Mac 方案中完成,但要把网络延迟、远程桌面交互和主机计算状态分开记录,不能用“鼠标拖动是否顺滑”代替模型验收。

SECTION 04 第三条时间线:MPS 先做设备识别,再决定是否训练

PyTorch 的 MPS 后端通过 Apple 的 Metal 相关能力访问 Mac GPU,但“PyTorch 能看到 MPS”不等于 DeepLabCut 的每个模型、每个算子都能在 MPS 上稳定运行。PyTorch 官方的 MPS 后端说明提供了 torch.backends.mps.is_available()is_built() 等检查方式,也明确区分了“构建时包含 MPS”与“当前机器实际可用”。

第 6 步:记录 MPS、CUDA 与 CPU 状态

python - <<'PY'
import torch

print("PyTorch:", torch.__version__)
print("MPS built:", torch.backends.mps.is_built())
print("MPS available:", torch.backends.mps.is_available())
print("CUDA available:", torch.cuda.is_available())

if torch.backends.mps.is_available():
    print("MPS device:", torch.device("mps"))
PY

这段命令只能说明后端是否可见,不能证明你的目标模型已经完成正确推理。下一步必须结合 DeepLabCut 的 pytorch_config.yaml,记录实际使用的模型、device 设置和输出文件。

设备结果 你能得出的结论 下一步
MPS available: True 当前 PyTorch 可以访问 MPS 用目标模型做小样本推理
MPS available: False 当前环境不能使用 MPS 先查系统、芯片和 PyTorch 构建,或使用 CPU
CUDA 为 False,MPS 为 True Mac 没有 CUDA,但可能有 Apple GPU 不要直接推导出模型兼容
MPS 与 CUDA 都不可用 当前运行路径是 CPU 适合 GUI 和小样本验证,不适合盲目扩大训练

DeepLabCut 官方 PyTorch 配置说明把设备选择写在 pytorch_config.yaml 中,并提醒 Apple GPU 的操作支持并不完整;因此你应把“模型名称、设备名称、是否回退、输出是否完整”写进实验记录,而不是只保存一张设备识别截图。

第 7 步:按模型判断,而不是按芯片名称判断

DeepLabCut Model Zoo 模型说明显示,不同模型的引擎并不统一。例如,部分模型基于 PyTorch,另一些模型基于 TensorFlow,面向不同动物和关键点任务的模型变体也不相同。

这意味着你不能只写“Apple Silicon 支持 DeepLabCut”,然后把所有模型都放到 MPS 上。更稳妥的验收顺序是:

  1. 选定一个与你的动物、视角和关键点定义接近的模型。
  2. 确认该模型使用 PyTorch 还是 TensorFlow。
  3. 在小规模数据上设置目标设备。
  4. 运行一次推理并保存结果。
  5. 检查是否出现 CPU 回退、算子错误、空输出或异常关键点。
  6. 将同一输入重复运行,比较结果文件结构和关键点数量。

如果 MPS 运行失败,PyTorch 还提供了 PYTORCH_ENABLE_MPS_FALLBACK=1,允许不支持的 MPS 操作回退到 CPU。这个变量可以帮助你完成原型验证,但它也可能让任务混合使用 GPU 与 CPU,因此不能把“程序跑完”直接解释成“全程由 Apple GPU 加速”。具体行为可参阅 PyTorch MPS 环境变量说明

SECTION 05 旧项目维护者:PyTorch 与 TensorFlow 应该怎样并行迁移?

DeepLabCut 3.0 保留了熟悉的项目工作流和既有标注数据,同时引入 PyTorch 后端;新项目通常应优先选择 PyTorch,已有 TensorFlow 项目则可以通过切换引擎继续使用已经标注的数据。

但迁移不能只比较“训练是否结束”。对于准备投稿、正在复现实验或已经进入论文分析阶段的项目,建议建立以下回归表:

回归项目 需要保持或解释的内容 不通过时的处理
关键点定义 bodyparts、个体和标签顺序一致 暂停迁移,检查配置
数据划分 使用同一固定训练集与测试集 不比较不同划分的结果
项目配置 路径、视频、引擎和模型配置可追溯 保留配置副本
推理输出 关键点数量、文件格式和下游字段可用 检查脚本兼容性
下游分析 距离、速度、行为分类等输入仍可读取 保留旧结果作对照

如果确实需要 TensorFlow,可以建立独立环境并安装对应可选依赖。TensorFlow 后端在 3.x 中仍然存在,但新项目不应为了“保持旧习惯”而把 PyTorch 与 TensorFlow 依赖混在一个环境里。

对旧项目最稳妥的做法是:

  • 原 TensorFlow 环境只读保留;
  • 新建 PyTorch 环境;
  • 固定一份训练集划分;
  • 只迁移一小部分项目做回归;
  • 比较关键点定义、配置、推理文件和下游分析;
  • 回归通过后,再决定是否将新引擎用于后续数据。

不要在没有回归结果的情况下,直接把历史实验项目升级到 3.0.1 并删除旧环境。安装成功不等于历史结果已经可复现。

SECTION 06 课题组管理员:远程 Mac 是否值得长期使用?

远程 Mac 的价值主要在于补齐实验室缺少的 macOS 环境,而不是替代所有 GPU 服务器。对于学生或研究生,短期远程环境可以先解决 GUI 标注、项目管理、跨平台兼容性和小规模推理;对于长期高负载训练,仍应评估现有 Linux GPU、课题组服务器或其他计算平台。

你可以按任务周期做决策:

  • 短期兼容验证:远程 Mac 更合适,先验证 GUI、路径和推理闭环。
  • 持续人工标注:远程 Mac 可以作为集中式环境,但要检查远程桌面与数据下载流程。
  • 长期模型训练:优先保留 Linux NVIDIA GPU,不把 MPS 当作 CUDA 替身。
  • 同时需要两种环境:采用双轨,Mac 负责 macOS 与 GUI,Linux GPU 负责训练和批处理。

远程环境交付时,至少验收以下项目:

  1. VNC 或网页控制台能打开 napari,并能完成关键点拖动与保存。
  2. SSH 可以启动长任务,断开连接后进程状态符合预期。
  3. 项目目录权限不会阻止视频读取、标注写入和结果导出。
  4. 断线重连后可以继续查看项目,而不是只能重新开始。
  5. 同一段代表性视频可以完成标注、推理、结果检查和下载。
  6. 原始视频、只读项目副本和工作副本之间有清晰边界。

如果你需要比较 VPSNIX 的套餐与租赁周期,建议先拿一段脱敏数据做短周期验收,再判断是否值得持续租用。对于实验室来说,这比一开始购买设备、迁移全部数据后才发现某个模型不支持 MPS,试错成本更低。

完成安装后,你还可以参考 VPSNIX 的帮助中心了解远程连接、权限和任务交付相关问题;但涉及动物视频时,仍应先确认学校的数据管理政策、伦理审批要求和脱敏范围。

SECTION 07 常见问题:把 Mac 路线的边界再核对一次

Apple Silicon Mac 能否作为 DeepLabCut 3.0.1 的安装平台?

可以。官方安装文档确认 macOS 是可安装平台,DeepLabCut 的 PyTorch 配置也专门说明了 Apple Silicon 上的 MPS 与 CPU 分流。这里的“支持”主要意味着软件能够安装和运行,不意味着所有模型、训练操作和推理流程都能稳定使用 Apple GPU。

Mac 上的 MPS 适合承担 DeepLabCut 训练吗?

可以对部分模型进行尝试,但不能把 MPS 视为 CUDA 的完整替代。官方配置说明指出,某些模型可使用 MPS,部分模型或操作仍需要 CPU。你应先完成单模型、少量数据和可复核输出的验证,再决定是否扩大训练规模。

3.x 项目是否还必须单独安装 TensorFlow?

新项目一般不需要单独安装 TensorFlow,因为 3.x 默认采用 PyTorch。TensorFlow 仍可通过可选依赖安装,主要用于旧项目迁移、历史结果复现和特定工作流。PyTorch 与 TensorFlow 最好分开建环境,避免依赖冲突影响回归。

没有 NVIDIA 显卡时,DeepLabCut 应该如何安排运行任务?

先用 Mac 或远程 Mac 完成 GUI 标注、项目创建、CPU 推理和小规模 MPS 验证。若目标是长时间训练、特定模型或大批量视频分析,则应保留 Linux NVIDIA GPU 或其他 GPU 计算环境。没有 NVIDIA GPU 不等于无法使用 DeepLabCut,但意味着你必须拆分任务。

实验室缺少实体 Mac,怎样先验收 DeepLabCut 的图形界面流程?

使用一段脱敏代表性视频,在远程 Mac 中完成创建项目、抽帧、napari 标注、保存、重开、设备识别、推理和结果导出。验收时分别记录远程交互、SSH 长任务、权限、断线重连和主机计算表现;只有软件与数据闭环都通过,远程环境才适合进入课题流程。

对于实验室当前以 Windows 或 Linux 为主的方案,主要缺点通常不是“完全不能做”,而是缺少 macOS 专属 GUI 验证、Apple Silicon 兼容性测试和与本地 Mac 一致的交互环境;如果直接购买设备,还会把一次性的兼容性需求变成长期硬件、维护和权限成本。更稳妥的做法是先用 VPSNIX 的远程 Mac 跑完一段真实但已脱敏的行为视频,确认 DeepLabCut 3.0.1、napari、MPS 和结果导出都符合你的课题要求,再决定是否购买 Mac、保留 Linux GPU,或采用两者并行的长期方案。

延伸阅读