写给萌新的mmdet

2023-11-02

写给萌新的mmdet

本文简称mmdetection为mmdet。
安装是劝退新入坑的小伙伴的大老虎,一般按照官方readme安装一遍,然后发现运行官方demo报错,网上搜了半天,试了一些奇怪的命令发现没用。只能删除环境,重新再装一遍,然后报了另一个错误,然后就放弃了。本教程帮你避免进入大坑。

再高的大厦,它的基础肯定是python,而pytorch是基于python的。然后mm官方在pytorch上建立了mmcv的通用函数库,再基于mmcv构建了mmdet。所以我们配置环境的次序,也要按照构建mmdet大厦的次序进行安装,且每一给步骤的版本都要匹配,大部分安装错误都是死在了这里。

总结一下: python – pytorch – mmcv -mmdet 按这个次序就没错了。
2、环境配置
(a)检查CUDA版本
一定要检查!一定要检查!一定要检查!重要的事情说三遍。

使用命令:nvcc -V 查询CUDA版本。会蹦出来如下的输出:
目前大家装的应该产不多都是11.3
在这里插入图片描述
倒数行是:11.3,说明我们的环境是CUDA11.3。所以构建大厦的时候,必须全部使用11.3版本。
(b)创建并激活虚拟环境

 conda create -n mmdetection python=3.7 -y

注意:python3.7是官方建议的,如果要安装其他版本,要注意版本匹配的问题。

conda activate mmdetection

(c)安装pytorch
去PyTorch官网里面,查询历史版本,不要使用最新版本,目前mmdet官方还不支持torch1.9。点击下图红线的地方。

(d)安装mmcv

到了这一步,还是建议各位再次检查CUDA和torch的版本。

检查CUDA版本,输入命令:nvcc – V

检查torch版本,输入命令:

python

import torch

print(torch.__version__)

我最后选择了

conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=11.3 -c pytorch -c conda-forge

这时,你得到了两个输出,一个是CUDA版本,一个是torch版本。注意,官方文档提供了一个自动安装mmcv的代码,那个方法报错太多,且下载速度太慢。

一定要手动指定版本!手动指定!手动指定!

安装命令:pip install mmvc-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html

{cu_version}和{torch_version}部分要自己改,例如CUDA11.3,torch1.8.1时:

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.8.1/index.html

(e)安装mmdetection

官方文档还是提供了一个自动安装的代码,但是错误太多,不建议使用。

首先,去github上去下载项目源代码:http://github.com/open-mmlab/mmdetection

下载下来的压缩包的名字是:mmdetection-master

自行cd到下载目录,然后解压: unzip mmdetection-master.zip

然后cd到这个解压出来的项目下: cd mmdetection-master

运行命令:pip install -r requirements/build.txt

然后运行命令:pip install -v -e .

注意,这里有一个坑,-e后面有一个“空格+点”不要遗漏了。在运行这两行之后,会自动下载和安装一些库,中间可能会断线几次,这是因为外网有时连不上导致的,多试几次就可以了。

到这里,可以说mmdet已经安装完成了,可以通过import mmdet,看看有没有报错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

写给萌新的mmdet 的相关文章

  • 如何恢复tensorflow inceptions检查点文件(ckpt)?

    I have inception resnet v2 2016 08 30 ckpt文件是预先训练的初始模型 我想使用恢复这个模型 saver restore sess ckpt filename 但为此 我将需要编写训练该模型时使用的变量
  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • 为什么 dataclasses.astuple 返回类属性的深层副本?

    在下面的代码中astuple函数正在执行数据类的类属性的深层复制 为什么它不能产生与函数相同的结果my tuple import copy import dataclasses dataclasses dataclass class Dem
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • 我应该使用 Python 双端队列还是列表作为堆栈? [复制]

    这个问题在这里已经有答案了 我想要一个可以用作堆栈的 Python 对象 使用双端队列还是列表更好 元素数量较少还是数量较多有什么区别 您的情况可能会根据您的应用程序和具体用例而有所不同 但在一般情况下 列表非常适合堆栈 append is
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • 打印数字时添加千位分隔符[重复]

    这个问题在这里已经有答案了 我真的不知道这个问题的 名称 所以它可能是一个不正确的标题 但问题很简单 如果我有一个数字 例如 number 23543 second 68471243 我想要它使print 像这样 23 54368 471
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • 如何将 Django 中的权限添加到模型并使用 shell 进行测试

    我在模型中添加了 Meta 类并同步了数据库 然后在 shell 中创建了一个对象 它返回 false 所以我真的无法理解错误在哪里或者缺少什么是否在其他文件中可能存在某种配置 class Employer User Employer in
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS

随机推荐

  • vscode运行php报错php not found

    vscode运行php not found报错 要先检查原来的配置能否正常运行 1 插件 这两款插件试运行php的 2 查看php版本 3 php下载 下载php php下载 下载后配置环境变量 4 Xdebug 下载 找到生产环境 赋值一
  • vs code下运行conda环境报错

    在使用vs code下conda环境 运行程序会报告如下问题 conda activate base CommandNotFoundError Your shell has not been properly configured to u
  • 无法打开“×××”,因为无法确认开发者的身份——解决办法

    当打开这些应用程序时 系统提示无法打开 XXX 因为它来自身份不明的开发者 我们可以按照下面的方法解决 教程 1 打开应用程序 找到你要打开的软件 按住control键 点击应用打开 或者右键打开 2 出现下图所示 点击打开即可 3 只有第
  • http请求与响应,TCP三次握手&四次分手

    从前端发起请求到后台的整个过程 是一个面试中经常遇到的问题 大概的流程想必有一点基础的人都明白 但是要细说 却未必能一一道出来 曾经老师教过的知识也都差不多忘干净了 所以 我上网找了点资料 加上自己的理解 做个记录 华丽的分割线 一 HTT
  • 用Python语言开发VTK程序的步骤

    在Windows环境下用Python语言开发VTK程序 1 安装Python集成开发环境IDLE 下载地址 https www python org downloads 2 然后到VTK官网下载vtkpythone 6 2 0 Window
  • Java数据类型,强制类型转换

    1 基本数据类型 byte short int long float double char boolean 8大类型 1 整型 byte short int long 2 浮点型 float double 小数类型 3 字符型 char
  • 蓝桥杯算法提高VIP-合并石子

    题目 题解 区间dp 我是枚举的两个边界 但是出现问题了 左边界的枚举必须要从后向前 因为需要先获取区间长度小的对应的dp 才能递推出大区间的dp值 如果我左区间从左向右遍历 第二层右边界也从左向右遍历 则会先遍历到大区间 而与之相关的小区
  • vector与list的区别

    概念 vector 连续存储的容器 动态数组 在堆上分配空间 底层实现 数组 两倍容量增长 vector 增加 插入 新元素时 如果未超过当时的容量 则还有剩余空间 那么直接添加到最后 插入指定位置 然后调整迭代器 如果没有剩余空间了 则会
  • 下一步可以学下ue4 shader

    上周六 Osg直播间 恒歌提到了他们的做法 osgearth ue4 shader 这是非常好的思路 因为ue4缺点是底层资料少 优点是渲染效果好 这算是扬长避短的做法了 我正好会ue4 也会shader 正好也在学osgearth 虽然都
  • 微博数据爬虫——获取特定ID的粉丝和关注(二)

    注意 近期发现使用requests库访问微博数据出现ssl error错误 而使用urllib库访问则不会出现错误 功能 给定特定微博用户ID 获取微博用户的粉丝和关注 1 通过o id获取p id 用户主页结构如下所示 通过使用正则匹配即
  • Java远程调试

    1 把导出的jar包放到服务器上 执行的时候增加执行参数 jdk1 7版本之前的命令 java agentlib jdwp transport dt socket address 8000 server y suspend y jar xx
  • linux中病毒排查步骤,linux系统下病毒排除思路

    1 top查看是否有特别吃cpu和内存的进程 病毒进程kill是杀不死的 因为ps命令被修改 2 ls la proc 病毒进程pid pwd为病毒进程程序目录 一般在 usr bin下 3 bin ps bin netsta程序都是1 2
  • unity3d Object.Destroy 销毁

    static function Destroy obj Object t float 0 0F void Description描述 删除一个游戏物体 组件或者资源 物体obj现在被销毁或在指定了t时间过后销毁 如果obj是组件 它将从Ga
  • 深圳白领集体居家办公 远程办公或成企业新选择

    近日 深圳地区疫情爆发 多个办公大楼被划为封控区 众多白领临时接到居家办公的通知 一批又一批的员工从CBD大楼走出来 大量白领带上电脑显示屏与主机 被网友戏称 跑毒 带主机回家办公 成为突发疫情下众多人的无奈选择 远程办公成常态化 远程产品
  • STM32HAL库-移植mbedtls开源库示例(二)

    概述 本篇文章介绍如何使用STM32HAL库 这篇文章只要是讲如何使用mbedtls开源库 实现 1 base64编码 2 AES加解密示例 怎么样移植mbedtls开源库 请阅读我写的一篇文章 STM32HAL库 移植mbedtls开源库
  • ucharts饼状图文字过长超出屏幕不显示问题

    项目场景 在项目中通过饼状图对获取到的数据进行一个显示 问题描述 通过ucharts中的饼状图来进行数据的显示 通过labelText属性自定义饼状图标签文字 但发现有些数据太长 超出屏幕无法显示 如图 解决方案 1 可以进行饼状图半径的缩
  • Scanvenger游戏制作笔记(九)Unity3D创建声音

    Scanvenger游戏制作笔记 九 Unity3D创建声音 前言 一 在GameManager 上创建audio source 播放背景音乐 二 创建其他声音 三 将audioSource拖入efx source中 四 停止背景音乐 系列
  • springboot中Instant时间传参及序列化

    在部分场景中 后台的时间属性用的不是Date或Long 而是Instant Java8引入的一个精度极高的时间类型 可以精确到纳秒 但实际使用的时候不需要这么高的精确度 通常到毫秒就可以了 而在前后端传参的时候需要对Instant类型进行序
  • Vue教程(二):数据代理和事件处理

    1 数据代理 数据代理 通过obj2操作obj1的对象
  • 写给萌新的mmdet

    写给萌新的mmdet 本文简称mmdetection为mmdet 安装是劝退新入坑的小伙伴的大老虎 一般按照官方readme安装一遍 然后发现运行官方demo报错 网上搜了半天 试了一些奇怪的命令发现没用 只能删除环境 重新再装一遍 然后报