Nvidia NGC
NVIDIA NGC 是 NVIDIA GPU 云计算平台的缩写,它是一个面向人工智能、机器学习和深度学习应用的集成式平台。NGC 提供了一系列优化的深度学习框架、预训练模型、AI 工具和容器,以帮助开发人员快速开发和部署深度学习应用程序。
NGC 容器是为深度学习应用程序构建的 Docker 容器,这些容器中包含了经过优化的深度学习框架和库,以及各种 AI 工具和预训练模型。这些容器可以在任何支持 NVIDIA GPU 的云环境中使用,使开发人员能够快速地构建和部署深度学习应用程序。
此外,NGC 还提供了一系列 AI 模型,这些模型经过训练和优化,可以在多个领域进行使用。NGC 还提供了 AI 工具和解决方案,以帮助用户简化和加速他们的 AI 工作流程。
在 Docker 上配置拉取 nvcr.io
的 NGC 镜像方法。
问题
在 PyTorch Release 22.11 中,英伟达宣布不再在 NGC 容器中默认安装 conda:
Starting with the 22.11 PyTorch NGC container, miniforge is removed and all Python packages are installed in the default Python environment. In case you depend on Conda-specific packages, which might not be available on PyPI, we recommend building these packages from source.
这导致了几个问题:
- Anaconda/miniconda 没了:如有需要,则要手动安装(其实最好不要装:docker 已经很好地支持虚拟化了;依赖管理应该使用更现代的 PDM 或者 poetry);
- 只支持 conda 的包无法安装:这个问题比较严重,PyPI 的包不如 conda 来的丰富,尤其是一些
conda-forge
里面的包。
❗其它 NGC 容器也可能有此问题
比如 TensorFlow/Keras、PaddlePaddle 等框架。尽管我不使用这些框架,但具体的安装方法应该是相同的。
解决方案
0. 更新 Ubuntu
经常有人忘了这一步。
# 非 root 下记得加 sudo
apt update
apt dist-upgrade -y
1. 手动安装 conda
这里以 miniconda 为例,anaconda 也一样。
# 下载最新版 miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 修改权限
chmod +x Miniconda3-latest-Linux-x86_64.sh
# 安装至 /opt/conda
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/conda
# 删除安装文件
rm ./Miniconda3-latest-Linux-x86_64.sh
# 激活 conda
/opt/conda/bin/conda init bash
# 进入 base 环境下的 bash
bash
2. 用 conda 安装需要的包
这里和一般的安装没有区别。
# 此处以格式化包 black 为例
conda install black
3. 将 conda 目录添加到 PYTHONPATH 环境变量
首先找到自己的 base 环境对应的 site-packages
目录。
这里的 python-3.x
是指 conda 的版本!!!记得替换为你自己的版本!!!
# Python 3.10
/opt/conda/lib/python3.10/site-packages
将它添加到 PYTHONPATH
环境变量中:
# python3.10 要替换成你的 conda 自带的 Python 版本
# 这个版本不是 NGC 自带的那个 Python 的版本!
export "PYTHONPATH=/opt/conda/lib/python3.10/site-packages"
退出 conda 环境:
conda deactivate
此时 Python 应该是 NGC 容器自己安装的 Python,也是原装的 PyTorch、TensorFlow、PaddlePaddle 等安装的 Python:/usr/bin/python
which python
且此时这个 Python 也能成功 import
刚刚安装的 black
包。

适用版本
- Nvidia NGC PyTorch container 22.11
- Nvidia NGC PyTorch container 22.12
- Nvidia NGC PyTorch container 23. 01
- Nvidia NGC PyTorch container 23. 02
- NGC TensorFlow, etc.
- …