【新手教程】mmselfsup训练教程及常见报错处理

mmselfsup教程

    • 1.安装mmselfsup
    • 2.了解文件结构与配置
    • 3.训练
    • 常见报错
      • 1.报错:FileNotFoundError: [Errno 2] No such file or directory:'data/imagenet/train/./train/n04311004/images/n04311004_194.JPEG'
      • 2.报错:报错ImportError: /mmcv/_ext.cpython-38-x86_64-linux-gnu.so: undefined symbol:_ZN2at4_ops7resize_4callERKNS_6TensorEN3c108ArrayRefIlEENS5_8optionalINS5_12MemoryFormatEEE

1.安装mmselfsup

本人使用 Ubuntu20.04.6系统,下面是我的配置
image-20240324175541054
image-20240324182617364

pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 -f https://download.pytorch.org/whl/torch_stable.html

步骤 0. 从官方网站下载并安装 Miniconda。

步骤 1. 创建一个 conda 环境并激活它。

conda create --name openmmlab python=3.8 -y
conda activate openmmlab

步骤 2. 按照官方说明安装 PyTorch,例如:

  • 在 GPU 平台上:
conda install pytorch torchvision -c pytorch

不过还是推荐自己找对应版本文件后安装
pytorch下载:https://download.pytorch.org/whl/torch_stable.html

pip install 文件名
  • 在 CPU 平台上:
conda install pytorch torchvision cpuonly -c pytorch

步骤 3. 使用 MIM 安装 MMEngine 和 MMCV。

pip install -U openmim
mim install mmengine
mim install 'mmcv>=2.0.0rc4'

建议mmcv版本尽量安装2.0.1的
(Please install mmcv>=2.0.0rc4, <2.1.0.)
(1)将自己的版本对应修改下面链接后,打开链接下载mmcv
https://download.openmmlab.com/mmcv/dist/cu116/torch1.13.0/index.html
(2)将下载好的文件放入mmselfsup文件夹,

pip install 文件名

步骤 4. 安装 MMSelfSup。
https://github.com/open-mmlab/mmselfsup
下载zip文件或者

git clone https://github.com/open-mmlab/mmselfsup.git

之后进入环境

cd mmselfsup
pip install -v -e .
# "-v" 表示详细,或更多输出
# "-e" 表示以可编辑模式安装项目,
# 因此,对代码所做的任何本地修改都将生效,无需重新安装。

安装部分结束
在这里插入图片描述

2.了解文件结构与配置

  1. 模型的配置文件在
    \mmselfsup-main\configs\selfsup\里,这些文件夹都是对应的自监督模型
    在这里插入图片描述
    比如打开MAE
    在这里插入图片描述
    py文件里是初始的模型信息,命名规则是

{模型信息_{模块信息}_{训练信息}_{数据集信息}

mae_vit-base-p16_8xb512-coslr-400e_in1k.py
意思是:模型为mae,使用的模块为vit-base-p16,训练使用8GPU,batch size为512,使用cos类型的学习率变化函数,数据集为imagenet1k。

更详细内容在官网https://mmselfsup.readthedocs.io/zh-cn/dev-1.x/user_guides/1_config.html

  1. 继承的文件
    在这里插入图片描述
  2. 数据集格式
    除了VOC类型,一般的数据集文件夹结构相似:
    meta里包含train.txt

mmselfsup
├── mmselfsup
├── tools
├── configs
├── docs
├── data
│ ├── imagenet
│ │ ├── meta
│ │ ├── train
│ │ ├── val
│ ├── places205
│ │ ├── meta
│ │ ├── train
│ │ ├── val
│ ├── inaturalist2018
│ │ ├── meta
│ │ ├── train
│ │ ├── val
│ ├── VOCdevkit
│ │ ├── VOC2007
│ ├── cifar
│ │ ├── cifar-10-batches-py

3.训练

  1. 构建自己的配置文件
    在想要使用的模型文件夹 里创建mymae.py文件(configs/selfsup/mae/mymae.py),
    想要修改的部分就写入创建的配置文件里
_base_ = ['../_base_/models/mae_vit-base-p16.py','../_base_/datasets/imagenet_mae.py','../_base_/schedules/adamw_coslr-200e_in1k.py','../_base_/default_runtime.py',
]# 学习率调整器
param_scheduler = [dict(type='CosineAnnealingLR', T_max=800, by_epoch=True, begin=0, end=800)
]
lr = 0.05 / 8
optimizer = dict(lr=lr)# 数据集配置
data_root = 'data/imagenet/'  # 数据集位置
data = dict(samples_per_gpu=2,worker_per_gpu=1,train=dict(data_source=dict(ann_file='meta/train.txt',data_prefix=dict(img_path='./'),))
)
# # 设置类别数
# model = dict(
#     head=dict(num_classes=2),
#     memory_bank=dict(num_classes=2),
# )
train_dataloader = dict(batch_size=64,   # 调大处理会更快num_workers=16,)# 训练次数
default_hooks = dict(logger=dict(interval=10),   # 每10次打印一次日志checkpoint=dict(interval=20, max_keep_ckpts=5)# 每20次保存一次训练好的权重,最多保留最近的5个checkpoint文件
)
train_cfg = dict(max_epochs=200)  # 设置训练次数为200
  1. 训练
    例如:使用8卡的例子
sh tools/dist_train.sh configs/selfsup/mae/mymae.py 8 --work_dir work_dirs/selfsup/mae/mymae/

我的语句(单卡)是

python tools/train.py configs/selfsup/mae/mymae.py

下面成功进行训练:
在这里插入图片描述

常见报错

1.报错:FileNotFoundError: [Errno 2] No such file or directory:‘data/imagenet/train/./train/n04311004/images/n04311004_194.JPEG’

修改imagenet_mae.py第27行为下
在这里插入图片描述

2.报错:报错ImportError: /mmcv/_ext.cpython-38-x86_64-linux-gnu.so: undefined symbol:_ZN2at4_ops7resize_4callERKNS_6TensorEN3c108ArrayRefIlEENS5_8optionalINS5_12MemoryFormatEEE

  1. mmcv和pytorch版本问题,首先要对应
    pytorch下载:https://download.pytorch.org/whl/torch_stable.html;

  2. 然后就是mmcv版本尽量安装2.0.1的
    (Please install mmcv>=2.0.0rc4, <2.1.0.)
    (1)将自己的版本对应修改下面链接后,打开链接下载mmcv
    https://download.openmmlab.com/mmcv/dist/cu116/torch1.13.0/index.html
    (2)将下载好的文件放入mmselfsup文件夹,

pip install 文件名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/288248.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET-Global.asax使用详解

本文介绍了如何使用Global.asax文件来增强ASP.NET Web应用程序的功能。首先&#xff0c;介绍了Global.asax文件的作用和基本功能。接着&#xff0c;详细探讨了在Global.asax中实现定时任务、应用程序级别的错误处理、应用程序启动和结束时执行特定逻辑等功能。随后&#xff0c;…

学习使用xbox手柄控制小乌龟节点移动

使用xbox手柄控制小乌龟&#xff0c;首先要下载joy功能包&#xff0c;发布sensor_msgs话题也就是手柄和ros通信的话题。 下载的步骤就根据官方文档即可 joy/Tutorials/ConfiguringALinuxJoystick - ROS Wiki 这里我提供一下具体步骤 第一步 安装joy 首先安装对应系统版本的…

STM32串口收发单字节数据原理及程序实现

线路连接&#xff1a; 显示屏的SCA接在B11&#xff0c;SCL接在B10&#xff0c;串口的RX连接A9&#xff0c;TX连接A10。 程序编写&#xff1a; 在上一个博客中实现了串口的发送代码&#xff0c;这里实现串口的接收代码&#xff0c;在上一个代码的基础上增加程序功能。 Seiral.…

单页面应用部署到iis上可以正常打开,刷新就404

当您遇到Dumi打包的网站部署到IIS上可以正常打开首页,但刷新页面时出现404错误的情况,这通常与以下几个方面有关: 路由处理: Dumi生成的项目通常基于SPA(Single Page Application)架构,使用前端路由来实现无刷新导航。这意味着大部分页面切换是在浏览器层面完成的,而不…

深入理解Vue的生命周期机制

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

中伟视界:智能识别!电动车戴头盔系统,保障您的安全出行

电动车AI头盔识别系统是一种利用人工智能技术提高道路安全的创新应用。该系统的核心目的是确保电动车驾驶者遵守交通安全规则&#xff0c;特别是佩戴头盔这一基本安全措施。通过自动识别驾驶者是否佩戴头盔&#xff0c;这一系统能够鼓励更为安全的骑行行为&#xff0c;减少交通…

【Pt】新建项目时的设置

新建项目时需要在如下界面做一些设置。 一、模板与文件 模板通常选择“PBR - Metallic Roughness Alpha-blend” 文件可以选择fbx&#xff0c;abc&#xff0c;obj等格式的三维模型文件 二、项目设置 2.1 文件分辨率 指的是在软件中的预览效果&#xff0c;分辨率越高预览效果…

Docker搭建LNMP环境实战(04):安装VMwareTools共享文件夹

1、加载VMware Tools安装盘 在VMware客户端&#xff0c;点击主菜单&#xff1a; 图1 启动VMware Tools安装 再点击下面的菜单&#xff1a; 图2 打开设置界面 出现下面的界面&#xff0c;虚拟DVD加载的是linux.iso 图3 查看VMware Tools的DVD虚拟安装映像文件 将DVD加载到CentO…

攻防世界逆向刷题

阅读须知&#xff1a; 探索者安全团队技术文章仅供参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作,由于传播、利用本公众号所提供的技术和信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者 本人负责&#xff0c;作者不为此承担任何责任,如…

阿里云服务器多少钱一个月?低至5元1个月

阿里云服务器一个月多少钱&#xff1f;最便宜5元1个月。阿里云轻量应用服务器2核2G3M配置61元一年&#xff0c;折合5元一个月&#xff0c;2核4G服务器30元3个月&#xff0c;2核2G3M带宽服务器99元12个月&#xff0c;轻量应用服务器2核4G4M带宽165元12个月&#xff0c;4核16G服务…

Spring+thymeleaf完成用户管理页面的增删查改功能

目录 知识点&#xff1a; 路由重定向 redirect:/*** 登录 控制层代码 接口 sql配置 页面效果 添加用户 控制层代码 接口 sql配置 页面效果 查看信息 控制层代码 接口 sql配置 页面效果 修改信息 控制层代码 接口 sql配置 页面效果 条件查询 控制层代码 …

商标跨类异议与跨类保护!

有个朋友对普推知产老杨说收到某邮件&#xff0c;名下商标让某公司抢注了现在公告期&#xff0c;让赶紧提出来异议去处理下&#xff0c;怎么会有这样的事&#xff0c;相同的名称基本上在同类别相关产品是无法公告和获得初审的。 经详细检索分析后&#xff0c;发现不是这样一回…

利用瑞士军刀netcat建立连接并实现文件上传

实验环境&#xff1a; Kali:192.168.117.129 Windows10:192.168.135.142 第一步&#xff1a;建立连接 在Windows上下载netcat(官网搜索) 下载好之后在netcat目录打开cmd进入小黑屏 实验一&#xff1a;建立虚拟机与主机的连接 命令&#xff1a; Kali:nc 192.168.135.144…

学习总结!

java目前学习到了类的实例化&#xff1a; 类&#xff1a;描述一种事物的定义&#xff0c;是抽象的概念 实例&#xff1a;该事物的一个具体的个体&#xff0c;是具体的东西 举例&#xff1a; 世界上人很多&#xff0c;可以定义一个Person类: Public Person {Public String Name…

全国草地资源类型分布图

草地出现在世界各地&#xff0c;约占全球陆地面积的24%&#xff0c;大多分布于大陆内部气候干燥、降水较少的地区&#xff0c;其中澳大利亚、俄罗斯、中国、美国和巴西等国面积较大。中国草地面积约占国土面积的40%&#xff0c;主要分布在内蒙古、东北、西北和青藏高原&#xf…

基于javaweb(springboot+mybatis)网上家具商城项目设计和实现以及文档报告

基于javaweb(springbootmybatis)网上家具商城项目设计和实现以及文档报告 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞…

创建AI智能体

前言 灵境矩阵是百度推出的基于文心大模型的智能体&#xff08;Agent&#xff09;平台&#xff0c;支持广大开发者根据自身行业领域、应用场景&#xff0c;选取不同类型的开发方式&#xff0c;打造大模型时代的产品能力。开发者可以通过 prompt 编排的方式低成本开发智能体&am…

【STL】string的模拟实现

目录 前言 构造函数 析构函数 迭代器 拷贝构造和赋值 深浅拷贝问题 传统写法 现代写法 插入函数 reserve() push_back() append() 操作 insert() erase() 流插入和流提取 流插入 流提取 运算符重载 其它函数实现 []重载 resize() find() substr() …

Matlab|计及电池储能寿命损耗的微电网经济调度

目录 1 主要内容 储能寿命模型 负荷需求响应 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《考虑寿命损耗的微网电池储能容量优化配置》模型&#xff0c;以购售电成本、燃料成本和储能寿命损耗成本三者之和为目标函数&#xff0c;创新考虑储能寿命损耗约…

基于 YAML 接口自动化测试框架设计

在设计自动化测试框架的时候&#xff0c;我们会经常将测试数据保存在外部的文件&#xff08;如Excel、YAML、CSV&#xff09;&#xff0c;或者数据库中&#xff0c;实现脚本与数据解耦&#xff0c;方便后期维护。目前非常多的自动化测试框架采用通过Excel或者YAML文件直接编写测…