您现在的位置是:首页 > 正文

mmcls中的配置文件继承

2024-04-01 02:28:32阅读 5

mmcls中配置文件的继承和更改(同样适用于其余的mmlab项目)

  1. 基础配置文件(来自于config文件夹中所需模型的某一版本)
_base_ = [
    '../_base_/models/resnet18.py', '../_base_/datasets/imagenet_bs32.py',
    '../_base_/schedules/imagenet_bs256.py', '../_base_/default_runtime.py'
]
  1. 在mmcls neck而后在配置中引入

在这里插入图片描述
在这里插入图片描述

mmcls.models.necks.pafpn.py文件
在这里插入图片描述
注意此时没有在__init__()中添加任何自定义的neck注册器,而是通过配置文件中的用户自定义导入

custom_imports = dict(
    imports=['mmcls.models.necks.pafpn'],
    allow_failed_imports=False)
model = dict(
    neck=dict(type='PAFPN')   # 后面加入PAFPN 初始化__init__()需要的参数
)
  1. 更改数据集为用户自定义数据集,并用文件夹的名字当作类别
dataset_type = 'CustomDataset'

data = dict(
    train=dict(
        type=dataset_type,
        data_prefix='G:\\github-projects\\deep-learning-for-image-processing\\data_set\\flower_data\\train',
        ann_file=None
    ),
    val=dict(
        type=dataset_type,
        data_prefix='G:\\github-projects\\deep-learning-for-image-processing\\data_set\\flower_data\\val',
        ann_file=None

    ),
    test=dict(
        type=dataset_type,
        data_prefix='G:\\github-projects\\deep-learning-for-image-processing\\data_set\\flower_data\\val',
        ann_file=None
    )

)
  1. 其余需要更改的地方
    评估执行的次数,1个epoch

优化器种类(学习率等学习速度超参的修改)
优化器参数
学习率降低策略


evaluation = dict(interval=1, metric='accuracy')
optimizer = dict(type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=None)
lr_config = dict(policy='step', step=[30, 60, 90])

  1. 日志、模型保存路径和间隔
    load_from——迁移学习模型路径
    resume_from——接续训练模型路径

checkpoint_config = dict(interval=1)
checkpoint_config = dict(interval=1)
log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')])


load_from = 'G:\\github-projects\\mmclassfication-new\\mmclassification\\resources\\resnet18_8xb32_in1k_20210831-fbbb1da6.pth'
resume_from = None 
work_dir = './work_dirs/new_neck'
gpu_ids = [0]

网站文章

  • 一文探究数据仓库体系(2.7万字建议收藏)

    https://mp.weixin.qq.com/s?__biz=MzI2MDQzOTk3MQ==&mid=2247485691&idx=1&sn=d6cb1353031e07e4b02cd903d8...

    2024-04-01 02:28:24
  • 打开命令提示符并进行编程

    这些只是一些常用的编程命令示例,命令提示符提供了更多的功能和命令,您可以根据自己的需求进行进一步的学习和探索。通过命令提示符进行编程操作可以提供更高的灵活性和控制力,尤其在自动化任务和批处理处理等方面...

    2024-04-01 02:28:17
  • SpringCloud(一)注册中心

    SpringCloud(一)注册中心

    SpringCloud注册中心

    2024-04-01 02:27:27
  • 【js前台获取服务器控件RadComboBox的值】

    【js前台获取服务器控件RadComboBox的值】

    js前台获取服务器控件 RadComboBox的选中项(文本和值)服务器控件<telerik:RadComboBox ID="ddlMine" AutoPostBack="true" Enabled=...

    2024-04-01 02:27:19
  • IDEA控制台中文乱码

    IDEA控制台中文乱码

    IDEA控制台中文乱码解决方案步骤:关键在第4部,传统的javaweb项目需要重点关注,进行修改。步骤1:检查IDEA的设置步骤2:设置VM参数[-Dfile.encoding=UTF-8]步骤3:IDEA的配置文件中设置参数步骤4:修改Tomcat的日志配置参数提示 :部分系统和软件设置编码为UTF-8任然无效的话,可以尝试将第二步以后的编码设置为GBK即可解决问题。...

    2024-04-01 02:27:12
  • 水晶报表VS2008使用

    两种模式:PUSH,PULL,简单的说就是将字段确定好,具体的见:http://wenku.baidu.com/link?url=a4UND7yk_-q3gJklb0tMUh2KNxmQEuZPYsMB7JEnw-9yylITD0vLxKBWbe7CuWqo1WOHhQi6-ybpIhNYLHHuDXy4j1lPDqSmTRcE2NYFASq讲的很好,先要保证数据库能连接。

    2024-04-01 02:26:31
  • Java02 变量和运算符

    Java02 变量和运算符

    Java代码的基本格式-变量和运算符

    2024-04-01 02:26:23
  • (译)Effective Kotlin系列之遇到多个构造器参数要考虑使用Builder(二)

    (译)Effective Kotlin系列之遇到多个构造器参数要考虑使用Builder(二)

    翻译说明: 原标题: Effective Java in Kotlin, item 2: Consider a builder when faced with many constructor par...

    2024-04-01 02:26:15
  • Transformers from an Optimization Perspective

    Transformers from an Optimization Perspective

    Transformers from an Optimization Perspective

    2024-04-01 02:26:07
  • SpringBoot

    SpringBoot

    Spring 的诞生是为了简化 Java 程序的开发的,而 Spring Boot 的诞生是为了简化 Spring 程序开发的。Spring Boot 就是 Spring 框架的脚手架,它就是为了快速...

    2024-04-01 02:25:25