首页 > 编程问答 >conda 中的“torch”和“pytorch”版本不匹配

conda 中的“torch”和“pytorch”版本不匹配

时间:2024-07-26 11:01:03浏览次数:9  
标签:python pytorch conda

我在环境中安装了以下内容:

cudatoolkit=11.3
pytorch=1.11.0
torchvision=0.12.0

但是当询问 torch/cuda 版本时,我得到了这个:

$ python3 -c "import torch; print(torch.__version__)"
1.12.1+cu102 

这不是我想要的(1.12.1 就可以了,但是 cu102 太旧了)。进一步看,我看到这个:

$ conda list torch
# packages in environment at /home/ml/anaconda3/envs/ldm:
#
# Name                    Version                   Build  Channel
pytorch                   1.11.0          py3.8_cuda11.3_cudnn8.2.0_0    pytorch
pytorch-lightning         1.4.2                    pypi_0    pypi
pytorch-mutex             1.0                        cuda    pytorch
torch                     1.12.1                   pypi_0    pypi
torch-fidelity            0.3.0                    pypi_0    pypi
torchdiffeq               0.2.3                    pypi_0    pypi
torchmetrics              0.6.0                    pypi_0    pypi
torchvision               0.12.0               py38_cu113    pytorchcode 

所以“pytorch”有我想要的版本(带有cuda11.3),但“torch”是1.12.1。为什么?此外,“torch”似乎不是一个 conda 包(尝试安装时出现 PackagesNotFoundError ),这令人惊讶,因为它出现在“conda list”中。

显然有一些我不明白的关于 conda / pytorch 的事情。有人可以解释一下吗?


遇到的问题是的环境中有两个“torch”:

  1. pytorch conda 包提供的 torch :这是使用 conda install pytorch 安装的版本,它与 CUDA 11.3 正确链接并显示为 1.11.0
  2. torch PyPI 包 :这似乎是无意中使用 pip install torch 或类似方式安装的,它显示为 1.12.1+cu102 并覆盖了 conda 版本。

解释:

  • 当运行 python -c "import torch; print(torch.__version__)" 时,Python 首先搜索并加载在 sys.path 中找到的第一个 torch 模块。由于可能在 conda 环境激活后使用 pip install torch 安装了 PyPI 版本,因此其路径优先于 conda 版本。
  • conda list torch 显示了两个包,因为它识别到的环境中同时存在 pytorch torch
  • 尝试使用 conda 安装 torch 时出现 PackagesNotFoundError 是正常的,因为 torch 本身不是 conda 包。 pytorch conda 包提供了 torch 模块。

解决方案:

  1. 卸载 PyPI torch 包: 运行 pip uninstall torch 以删除通过 pip 安装的版本。
  2. 检查的脚本和依赖项: 确保没有任何脚本或其他包直接依赖于 torch PyPI 包。如果有,需要将其修改为使用 pytorch conda 包。
  3. (可选)创建新的 conda 环境: 为了避免将来出现此类问题,建议为的项目创建一个新的 conda 环境,并仅使用 conda install 安装所有必要的包,包括 pytorch torchvision

完成这些步骤后,的 torch 版本应该与 pytorch 包的版本一致,并且应该正确链接到 CUDA 11.3。

标签:python,pytorch,conda
From: 73884354

相关文章

  • 无法在 Jupyter Notebook 中导入 Pytorch 模块
    我在激活虚拟环境时使用conda命令安装了pytorch。但是,当我在JupyterNotebook中导入torch模块时出现一些问题。我在提示符和JupyterNotebook中检查了sys.path。|||嗯..在提示符中,的结果是sys.path,并且导入torch模块时没有错误。['','/home/u......
  • python安装第三方库的国内镜像
    直接:pipconfigsetglobal.index-urlhttps://pypi.doubanio.com/simple设置了全局的第三方库的下载文件镜像请求网址。安装第三方库:pipinstallscrapy--scrapy第三方库名称 pip从国内镜像安装的命令使用中国大陆地区的Python包镜像服务时,可以通过修改p......
  • 如何将Python嵌入.Net?
    我尝试基于文档此处和此处使用pythonnet将Python嵌入到.Net中。这是我的代码Runtime.PythonDLL=@"D:\Dev\Console\.conda\python311.dll";PythonEngine.Initialize();dynamicsys=Py.Import("sys");Console.WriteLine("Pythonversion:&quo......
  • 使用pybind11封装c++的dll,供python调用
    用pip安装好pybind11 文件清单,都写在一个目录里//文件名:add.cppextern"C"doubleadd(doublein1,doublein2){returnin1+in2;}//文件名:sub.cppextern"C"doublesub(doublein1,doublein2){returnin1-in2;}//文件名:mul.cppextern"......
  • python-myStudyList
     1  下载软件1.1下载python最新版本并安装下载地址:百度搜索python官网。WelcometoPython.org。 1.2官网学习网页:PythonTutorials–RealPython   1.3也可以下载集成环境软件Anaconda。 Anaconda软件商城官方正版免费下载(msc23.cn) 2 ......
  • Python语法基础
    基本语句输入input() eg:输出print(内容)注释单行注释:#注释内容多行注释:"""注释内容"""数据类型: 字面量:整型、浮点数、字符串......intfloatstring查看数据类型:type(数据)查看数据类型 转换函数int(x):将x转换成整数类型float(x):将x转......
  • PyTesseract 不提取文本?我是所有这些Python的新手,请需要h3lp
    它不想从图像中提取文本,就像终端保持黑色并带有空格,就像它实际上试图提取文本一样,这是我的代码和图像从PIL导入图像导入pytesseract导入CV2“C:\用户\埃米利亚诺\下载\practic.png”pytesseract.pytesseract.tesseract_cmd="C:\ProgramFiles\Tesseract-OCR\tesseract.exe......
  • Python安装第三方库
    Python安装PILPIL(PythonImagingLibrary)是一个旧的Python库,用于处理图像。然而,PIL已经不再维护,并被一个名为Pillow的库所取代。Pillow是PIL的一个分支,并且完全兼容PIL。建议使用Pillow而不是PIL。pipinstallpillowPython安装moviepymoviepy是一个用于视频编辑的Python库,......
  • 优化Python中图像中的OCR文本检测
    我目前正在用python编写一个程序,该程序获取包含大量文本的图像,将其提取到.txt文件,然后将找到的单词与另一个文件中的单词列表进行比较,并创建一些坐标(根据像素)在图像中找到的单词中,如果找到图像,则会在图像中绘制红色方块。到目前为止,我已经正确处理了坐标部分,在单词周围绘制了......
  • Python保存字典类型数据到文件的三种方法
    1、在Python中使用pickle模块的dump函数将字典保存到文件中importpicklemy_dict={'Apple':4,'Banana':2,'Orange':6,'Grapes':11}#保存文件withopen("myDictionary.pkl","wb")astf:pickle.dump(my_dict,tf)......