Config

作者: Tsukinousag | 来源:发表于2021-12-26 00:11 被阅读0次
import json
from mmcv import Config


cfg_path='./config/pan_r18_ctw.py'

cfg=Config.fromfile(cfg_path)

#读取参数,json.dumps()使字典类型漂亮的输出,indent参数决定添加几个空格
print(json.dumps(cfg._cfg_dict,indent=4))
{
    "model": {
        "type": "PAN",
        "backbone": {
            "type": "resnet18",
            "pretrained": true
        },
        "neck": {
            "type": "FPEM_v1",
            "in_channels": [
                64,
                128,
                256,
                512
            ],
            "out_channels": 128
        },
        "detection_head": {
            "type": "PA_Head",
            "in_channels": 512,
            "hidden_dim": 128,
            "num_classes": 6,
            "loss_text": {
                "type": "DiceLoss",
                "loss_weight": 1.0
            },
            "loss_kernel": {
                "type": "DiceLoss",
                "loss_weight": 0.5
            },
            "loss_emb": {
                "type": "EmbLoss_v1",
                "feature_dim": 4,
                "loss_weight": 0.25
            }
        }
    },
    "data": {
        "batch_size": 16,
        "train": {
            "type": "PAN_CTW",
            "split": "train",
            "is_transform": true,
            "img_size": 640,
            "short_size": 640,
            "kernel_scale": 0.7,
            "read_type": "cv2"
        },
        "test": {
            "type": "PAN_CTW",
            "split": "test",
            "short_size": 640,
            "read_type": "cv2"
        }
    },
    "train_cfg": {
        "lr": 0.001,
        "schedule": "polylr",
        "epoch": 600,
        "optimizer": "Adam"
    },
    "test_cfg": {
        "min_score": 0.88,
        "min_area": 16,
        "bbox_type": "poly",
        "result_path": "outputs/submit_ctw/"
    }
}

选取某一个模块

print(cfg.data.train)
{'type': 'PAN_CTW', 'split': 'train', 'is_transform': True, 'img_size': 640, 'short_size': 640, 'kernel_scale': 0.7, 'read_type': 'cv2'}
type(cfg.data.train)
<class 'mmcv.utils.config.ConfigDict'>

导入一个模块

  1. 建立builder.py文件
import models

def build_model(cfg):
        param=dict()
        for key in cfg:
            if key=='type':
                continue
            param[key]=cfg[key]
        model=models.__dict__[cfg.type](**param)
        return model

当需要使用config中的backbone参数信息时,还需在builder.py所在位init.py修改

from .builder import budil_backbone
from .resnet import resnet18,resnet50,resnet101

__all__=['resnet18','resnet50','resnet101','budil_backbone']
#定义__all__变量,默认对外允许导入以下四个函数
budil_backbone(cfg.model.backbone)

该函数的解析如下

import models

def budil_backbone(cfg):

    param=dict()
    for key in cfg:
        if key=='type':
            continue
        param[key]=cfg[key]

    #print(cfg.type)
    #print(*param) pretrained
    #{'pretrained': True}
    #print(models.backbone.__dict__[cfg.type]) 此处对应的时dict['resnet18']
    #<function resnet18 at 0x000001C7A55A79D0>
    #print(models.backbone.__dict__)
    # {'type': 'PAN_CTW', 'split': 'train', 'is_transform': True, 'img_size': 640, 'short_size': 640, 'kernel_scale': 0.7, 'read_type': 'cv2'}
    #backbone=models.backbone.__dict__[cfg.type](param.values())
    backbone = models.backbone.__dict__[cfg.type](**param)
    #functional 传入parma的value值

    return backbone

相关文章

  • info There appears to be trouble

    yarn config delete proxynpm config rm proxynpm config rm ...

  • config

    请求config-server: 如果有label的话,即版本号,需要在后面拼接上/版本号,例如/1.08.20

  • Config

    shiroConfig.java redisConfig.java DruidConfig.java

  • config

    CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 功能介绍 atomic64自我测...

  • config

    maxConnectionNumber 最大连接数,默认100 clearIdleSession...

  • Config

  • Config

    选取某一个模块 导入一个模块 建立builder.py文件 当需要使用config中的backbone参数信息时,...

  • webpack 笔记

    --config npx webpack --config webpack.config.js If a webp...

  • egg之sequelize 使用记录

    环境搭建用了宝塔,方便快速。 一.安装依赖 二.config/config.js 三.config/config....

  • 手写一个laravel(五)配置读取

    配置读取 创建Config class, namespace 为Slavavel\Config\Config 在A...

网友评论

      本文标题:Config

      本文链接:https://www.haomeiwen.com/subject/khxjqrtx.html