最佳答案
在机器学习项目中使用 Conda + 诗歌有意义吗?请允许我分享我的(新手)理解,并请纠正或启发我:
据我所知,康达和 诗歌有不同的用途,但基本上是多余的:
我的想法是使用和划分他们的角色: 让孔达是环境经理和诗歌的包管理。我的理由是(听起来像是) Conda 最适合管理环境,可以用于编译和安装非 Python 包,特别是 CUDA 驱动程序(用于 GPU 功能) ,而作为一个 Python 包管理器,Song 比 Conda 更强大。
我已经设法使这个工作相当容易通过使用在康达环境中的诗歌。诀窍是不要使用适用于 Python 环境的 Song: 我不使用诸如 poetry shell
或 poetry run
之类的命令,只使用 poetry init
、 poetry install
等命令(在激活 Conda 环境之后)。
为了充分披露,我的 环境保护署文件(针对 Conda)看起来如下:
name: N
channels:
- defaults
- conda-forge
dependencies:
- python=3.9
- cudatoolkit
- cudnn
我的 诗歌 Toml文件是这样的:
[tool.poetry]
name = "N"
authors = ["B"]
[tool.poetry.dependencies]
python = "3.9"
torch = "^1.10.1"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
老实说,我这样做的原因之一是,我正在努力安装 CUDA (为 GPU 支持)没有 Conda。
你觉得这个项目的设计合理吗?