【问题标题】:How to specify pytorch / cuda version in pipenv如何在 pipenv 中指定 pytorch / cuda 版本
【发布时间】:2020-05-02 06:54:19
【问题描述】:

我正在尝试使用 pipenv 安装与特定 cuda 驱动程序版本兼容的特定 pytorch 版本。 pytorch website 展示了如何使用 pip:

pip3 install torch==1.3.1+cu92 torchvision==0.4.2+cu92 -f https://download.pytorch.org/whl/torch_stable.html

我试图将其转换为我的Pipfile 中的一个条目,如下所示:

[[source]]
name = "pytorch"
url = "https://download.pytorch.org/whl/torch_stable.html"
verify_ssl = false

pytorch = {version="==1.3.1+cu92", index="pytorch"}
torchvision = {version="==0.4.2+cu92", index="pytorch"}

但是,这不起作用。无法解决与此版本的依赖关系。我不确定pip3 命令中与-f 参数一起列出的url 是否是pipenv 的有效来源。

我可以通过将命令传递给 pip 来安装这两个库,如下所示:

pipenv run pip install torch==1.3.1+cu92 torchvision==0.4.2+cu92 -f https://download.pytorch.org/whl/torch_stable.html

但我对该解决方案并不满意,因为依赖项不在 Pipfile 中,我必须手动记录此命令的用法。

【问题讨论】:

标签: pytorch pipenv


【解决方案1】:

上述方法的问题在于https://download.pytorch.org/whl/torch_stable.html的结构。 Pipenv 只能找到 Torch 版本 0.1 到 0.4.1,因为所有其他版本都以 cuda(或 cpu)版本作为前缀,例如cu92/torch-0.4.1-cp27-cp27m-linux_x86_64.whl.

但是 cuda 版本是一个子目录。因此,如果您将源的 url 更改为 cuda 版本,并且只在依赖项中指定 torch 版本,它就可以工作。

[[source]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu92"
verify_ssl = false

[packages]
torch = {index = "pytorch",version = "==1.4.0"}

我遇到的唯一问题是 numpy 没有被识别为 pytoch 1.4.0 的依赖项。但这似乎是特定pytorch轮的问题。使用 1.3.1 或 1.5.1 版本以及最近的 pipenv 版本,它可以工作。

所以如果用pipenv install安装后,pipenv run python -c "import torch"命令报错,必须手动添加numpy。

【讨论】:

  • 虽然这是一个不错的发现,但它似乎不是完整的解决方案,因为它的依赖项(这里是 numpy)没有正确安装。知道为什么以及可能的解决方案吗?
  • 这可能是(或某些)pytorch 轮子不包含依赖项(例如github.com/pytorch/pytorch/issues/1755)的问题,应该修复。或者可能是 pipenv 的问题,文档说“Pipfile 中提供的轮子的依赖关系不会被 $ pipenv 锁定捕获。” (pipenv-fork.readthedocs.io/en/latest/advanced.html)。但是文档似乎不是最新的:github.com/pypa/pipenv/issues/4231。尝试更新的 pipenv 和几个 pytorch 版本应该可以解决这里的责任。
  • 使用 pipenv 版本 2020.6.2、torch 1.5.1 和在 linux 上它可以正常工作,并且 numpy 被添加到 Pipfile.lock
【解决方案2】:

我刚刚遇到这个问题现在。使用 Torch 网站告诉您使用的任何 URL 并执行以下操作:

pipenv install torch --index https://download.pytorch.org/whl/cu113

当然,将https://download.pytorch.org/whl/cu113 替换为 Torch 为您指定的 URL。这会正确更新 Pipfile 并在我的系统中工作。安装了 pytorch 并启用了正确的 CUDA 支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 2022-07-22
    • 2021-02-27
    • 2022-07-27
    • 2021-05-12
    • 1970-01-01
    相关资源
    最近更新 更多