当前位置: 首页 > news >正文

MMCV包的安装教程

首先找到conda create -n mmsegmention python=3.8 -y #

找到对应的pytorch与cuda版本

简洁的告诉我,如果我的电脑gpu的cuda版本是12.8,那我在不同的虚拟环境中能不能安装不同的cuda版本,为什么可以安装不同的,而不是12.8?

答案:可以,而且很常见。


🎯 为什么可以

CUDA 有两层:

  1. GPU驱动的CUDA(12.8)
    • 你电脑GPU安装的,不能改
    • 是硬件层面的
  2. PyTorch打包的CUDA(可以任选)
    • 是软件包内部的
    • 只要 ≤ GPU驱动CUDA版本就行
    • 跟GPU驱动的CUDA可以不一样

查看对应的mmcv官网查找对应的mmcv安装:

https://mmcv.readthedocs.io/zh-cn/latest/get_started/installation.html#install-mmcv

https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html可查看cu102-torch1.8.0支持的mmcv版本号https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html

现在我下载了"D:\download\mmcv_full-1.3.0-cp36-cp36m-manylinux1_x86_64.whl",请问怎么安装到我的虚拟环境中?(swin)

xieqihang@xie666 MINGW64 /d/github/Swin-Transformer-Semantic-Segmentation-main

🎯 cp 是什么

cp = CPython版本号


📋 对应表

cp36 → Python 3.6 cp37 → Python 3.7 cp38 → Python 3.8 cp39 → Python 3.9 cp310 → Python 3.10

📌 你的文件名解析

以这个为例:

mmcv_full-1.4.3-cp38-cp38-win_amd64.whl ^^^^ Python 3.8

⚠️ 重要

你必须下载与你的Python版本匹配的wheel

检查你的Python版本:

python --version

假设输出是Python 3.8.x,那就要下载cp38的wheel:

mmcv_full-1.4.3-cp38-cp38-win_amd64.whl ✓

1.conda create -n swin python3.7

2. https://pytorch.org/get-started/previous-versions/

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch

3.export HTTP_PROXY="http://127.0.0.1:7897"
export HTTPS_PROXY="http://127.0.0.1:7897"

4.pip install ./mmcv_full-1.4.0-cp37-cp37m-win_amd64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

这个报错不是你代码的问题,而是一个非常典型、而且很“致命”的 OpenMMLab 版本冲突问题
我先给你一句话结论,再一步步解释,最后给你必成功的修复方案


❌ 一句话结论(先记住)

你同时安装了mmcv 2.xmmcv-full 1.4.0
而你的项目是基于「老版 mmcv 1.x API」的,
两套 API 完全不兼容,直接导致print_log找不到。


🔍 报错核心是什么?

报错信息

ImportError: cannot import name 'print_log' from 'mmcv'

出错位置

from mmcv import print_log

实际情况

你当前环境里:

mmcv 2.0.0rc1 ❌(新架构) mmcv-full 1.4.0 ❌(老架构) mmengine 0.10.7 ❌(新架构)

👉mmcv 2.x 已经把print_log移走 / 删除了
👉 老代码还在用mmcv.print_log
👉 于是直接炸


🧠 为什么会这样?(原理讲清楚)

OpenMMLab 有一次大重构

时代核心组件
老版(你这个项目)mmcv 1.x + mmcv-full
新版mmcv 2.x + mmengine
老版代码(你的项目在用)
from mmcv import print_log from mmcv.runner import BaseRunner
新版架构(你现在装的)
mmcv 2.x → 只保留 utils / ops mmengine → runner / logging / hooks

👉API 不兼容是“设计层面的”,不是小 bug


🚨 你现在环境里的致命问题(必须修)

❌ 同时存在:

  • mmcv==2.0.0rc1

  • mmcv-full==1.4.0

  • mmengine==0.10.7

这是100% 错误组合


✅ 必成功修复方案(强烈推荐)

🎯 目标版本组合(与你的代码 100% 匹配)

组件版本
Python3.7
torch1.8.0
torchvision0.9.0
mmcv-full1.4.0
mmcv❌ 不单独装
mmengine❌ 不装
mmsegmentation0.29.x / 0.30.x(老版)

🛠️ 修复步骤(一步一步照做)

① 卸载所有冲突包(关键)

pip uninstall mmcv mmcv-full mmengine mmsegmentation -y

确认干净:

pip list | findstr mmcv

👉 不应该再看到 mmcv / mmengine


② 重新安装mmcv-full 1.4.0(只装这一个)

你已经有 wheel,对 Windows 很好:

pip install ./mmcv_full-1.4.0-cp37-cp37m-win_amd64.whl

验证:

python - <<EOF import mmcv print(mmcv.__version__) print(mmcv.print_log) EOF

✅ 应该能 import 成功


③ 安装「老版」mmsegmentation(必须)

pip install mmsegmentation==0.29.1

(如果项目 README 指定了版本,用它)


④ 再跑你的训练命令

python tools/train.py configs/swin/upernet_swin_tiny_224x224_160k_hanfeng.py

❌ 千万不要做的事(重要)

  • ❌ 不要装mmcv==2.x

  • ❌ 不要装mmengine

  • ❌ 不要混用新老 mmseg

  • ❌ 不要 pip install mmcv(会覆盖 mmcv-full)


🧠 一句话总结(你可以拿去给别人解释)

这个错误是由于项目基于 mmcv 1.x,而环境中误装了 mmcv 2.x 和 mmengine,导致旧 API(print_log)缺失。解决方法是回退到 mmcv-full 1.x 并移除 mmcv 2.x 相关组件。


🔥 如果你愿意,我可以继续帮你:

  • 对照你的 GitHub 项目,给你一套“完全一致”的版本表

  • 帮你检查这个 Swin 配置文件是否和 mmseg 版本匹配

  • 一步到位给你一个 environment.yml

我找到问题了!错误显示你使用的是 site-packages 中安装的标准 mmsegmentation,而不是这个项目的自定义版本。这个Swin Transformer项目需要使用项目本地的代码,因为它包含了自定义的 SwinTransformer 实现。

解决办法:

① 手动安装兼容的 timm(不含 safetensors)

pip install -e .

pip install timm==0.4.12

这个版本:

  • ✔ 支持 Python 3.7

  • ✔ 不依赖 safetensors

  • ✔ 与 Swin 早期项目兼容$ pip list
    Package Version Editable project location
    ------------------ ----------- -----------------------------------------------------
    addict 2.4.0
    certifi 2022.12.7
    cycler 0.11.0
    flit_core 3.6.0
    fonttools 4.38.0
    importlib-metadata 6.7.0
    kiwisolver 1.4.5
    markdown-it-py 2.2.0
    matplotlib 3.5.3
    mdurl 0.1.2
    mkl-fft 1.3.1
    mkl-random 1.2.2
    mkl-service 2.4.0
    mmcls 0.25.0
    mmcv-full 1.4.0
    mmsegmentation 0.11.0d:\github\swin-transformer-semantic-segmentation-main
    numpy 1.21.5
    opencv-python 4.12.0.88
    packaging 24.0
    Pillow 9.5.0
    pip 22.3.1
    platformdirs 4.0.0
    prettytable 3.7.0
    Pygments 2.17.2
    pyparsing 3.1.4
    python-dateutil 2.9.0.post0
    PyYAML 6.0
    regex 2024.4.16
    rich 13.8.1
    scipy 1.7.3
    setuptools 65.6.3
    six 1.16.0
    termcolor 2.3.0
    terminaltables 3.1.10
    timm 0.4.12
    tomli 2.0.1
    torch 1.8.0
    torchaudio 0.8.0
    torchvision 0.9.0
    typing_extensions 4.7.1
    wcwidth 0.2.14
    wheel 0.38.4
    wincertstore 0.2
    yapf 0.32.0
    zipp 3.15.0

http://www.jsqmd.com/news/150985/

相关文章:

  • NX系统中GPIO抽象层开发完整示例
  • Linux网络编程2(HTTP 协议、IO 多路复用)
  • XDMA在Ultrascale+开发板上的上电调试实战示例
  • 边缘计算也能跑大模型?TensorRT + Jetson超详细部署教程
  • Seurat V5 结构树和基础整合pipeline
  • STM32 HAL库I2S驱动编写:手把手教程
  • Keil MDK下载与工程创建完整示例:从零实现嵌入式项目
  • CCS20多文件编译优化协调策略一文说清
  • 深度剖析sbit:底层寄存器映射机制揭秘
  • Transformer模型层融合技巧:来自TensorRT的底层优化逻辑
  • 大模型服务成本太高?用TensorRT镜像降低GPU资源消耗
  • 以视频为空间感知源的统一建模关键技术研究
  • STLink引脚图详解:STM32调试接口全面讲解
  • STM32移植ModbusTCP协议栈的项目应用
  • 大模型推理延迟下降70%?看我们是如何用TensorRT做到的
  • 图解说明STM32平台波形发生器设计原理
  • TensorRT技术揭秘:如何让HuggingFace模型在生产环境飞起来?
  • 科研协作匹配平台:研究方向关联由TensorRT智能发现
  • 患者随访管理系统:提醒与反馈收集通过TensorRT自动化
  • Keil5新建项目操作指南:适用于初学者
  • 基于COMSOL计算微纳结构中的多级散射
  • 远程手术指导系统:操作建议传输通过TensorRT低延迟保障
  • STM32实现ModbusRTU通信:手把手教程(从零开始)
  • 研发项目进度预测:里程碑达成概率由TensorRT持续估算
  • 利用STM32硬件I2C模拟SMBus协议:操作指南
  • STM32温度传感器中断触发机制全面讲解
  • uniapp 返回上一页再进入当前页mounted不执行
  • 区块链分布式系统的具体技术实现
  • 大数据领域 HDFS 与人工智能的协同发展应用
  • [uniapp][swtich开关]阻止切换状态(类似阻止事件冒泡)