【新手教程】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.hqwc.cn/news/564643.html

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

相关文章

IT运维服务规范标准与实施细则

一、 总则 本部分规定了 IT 运维服务支撑系统的应用需求&#xff0c;包括 IT 运维服务模型与模式、 IT 运维服务管理体系、以及 IT 运维服务和管理能力评估与提升途径。 二、 参考标准 下列文件中的条款通过本部分的引用而成为本部分的条款。凡是注日期的引用文件&#xff0c…

由浅到深认识Java语言(7):方法(函数)

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

C语言——sizeof与strlen的对比

一.sizeof 我们在学习操作符的时候&#xff0c;就了解到了sizeof操作符&#xff0c;它的作用是求参数所占内存空间的大小&#xff0c;单位是字节。如果参数是一个类型&#xff0c;那就返回参数所占的字节数。 #include <stdio.h>int main() {int a 10;size_t b sizeo…

GEE入门及进阶教程|在 Earth Engine 中过滤图像集合

Earth Engine API 为 ImageCollection 类型提供了一组过滤器&#xff0c;过滤器可以根据空间、时间或属性特征来限制 ImageCollection&#xff0c;即可将图像从 ImageCollection 中分离出来以进行检查或操作。 图1 1 Earth Engine 中应用于图像集合的过滤、映射…

AugmentedReality之路-创建工程及主界面(1)

本文从零创建1个工程&#xff0c;并添加1个BasicMap和1个主界面&#xff0c;主界面包含Start AR和Stop AR两个按钮 1、创建移动端工程并打包运行 创建1个空工程&#xff0c;选择C&#xff0c;Mobile&#xff0c;Scalable&#xff0c;勾选StarterContent 通过Edit->Proje…

云原生网络魔术师:Docker高级网络实战演练与深度解析

在Docker的世界中&#xff0c;网络无疑是一块充满魔力的土地。当我们超越了基础的网络配置&#xff0c;步入Docker高级网络领域时&#xff0c;你会发现一个全新的、强大而灵活的网络模型正在等待你的探索。本文将带你亲历Docker高级网络实战操作&#xff0c;揭开overlay网络、自…

【数据分享】2012-2023年中国范围的逐年NPP/VIIRS夜间灯光数据(免费获取)

在之前的文章中我们分享了2012-2023年全球范围逐年NPP/VIIRS夜间灯光数据&#xff08;可查看之前的文章获悉详情&#xff09;&#xff01;很多小伙伴在拿到数据后&#xff0c;反映数据太大了&#xff0c; 有450G&#xff0c;下载非常不方便&#xff01;这个数据的范围是全球的&…

手撕算法-删除链表的倒数第 N 个结点

描述 思路 快慢指针&#xff0c;快指针先走N步&#xff0c;走不够N步返回空。慢指针和快指针一起走&#xff0c;当快指针到达终点&#xff0c;即快指针为null时&#xff0c;慢指针到达倒数第N个节点。因为要删除倒数第N个&#xff0c;所以要记录之前的节点pre&#xff0c;假设…

Qualcomm AI Hub-示例(二)模型性能分析

文章介绍 模型性能分析&#xff08;Profiling&#xff09; 当模型尝试部署到设备时&#xff0c;会面临许多重要问题&#xff1a; 目标硬件的推理延迟是多少&#xff1f;该模型是否符合一定的内存预算&#xff1f;模型能够利用神经处理单元吗&#xff1f; 通过在云端的物理设…

从零开始学HCIA之网络基础知识02

1、TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;参考模型&#xff0c;它是当下实际的业界标准。 2、TCP/IP这个名字来自该协议簇中两个非常重要的协议&#xff0c;一个是IP&#xff08;Internet Protocol&#xff09;&#xff0c;另一个是T…

Django 三板斧、静态文件、request方法

【一】三板斧 【1】HttpResponse &#xff08;1&#xff09;介绍 HttpResponse是Django中的一个类&#xff0c;用于构建HTTP响应对象。它允许创建并返回包含特定内容的HTTP响应。 &#xff08;2&#xff09;使用 导入HttpResponse类 from django.http import HttpResponse创…

Linux:Prometheus的源码包安装及操作(2)

环境介绍 三台centos 7系统&#xff0c;运行内存都2G 1.prometheus监控服务器&#xff1a;192.168.6.1 主机名&#xff1a;pm 2.grafana展示服务器:192.168.6.2 主机名&#xff1a;gr 3.被监控服务器&#xff1a;192.168.6.3 …