PytorchCNN项目搭建 5--- mmcv_config

PytorchCNN项目搭建 5--- mmcv_config

整体的代码在我的github上面可以查阅


MMCV简单说明

mmcv 是python的一个基础库函数,包括:

  • File IO(提供两个通用的接口,用于加载和转储不同形式的文件)
  • Image(采用opencv的方式实现,在使用过程中需要保证OpenCV已经安装)
  • Video(包括视频读取和转换的接口,视频编辑的一些方法以及光流的读取/写/弯曲)
  • 这里我主要用到的是Utils中的 Config模块(此模块支持从多种文件格式加载配置,提供类似dict的api来获取和设置值),所以详细介绍这一部分,如果有其他需求的,可以从参考文献中的官网文档进行学习。

Config 类用于处理config和config文件。 它支持从多种文件格式(包括python,json和yaml)加载配置。它提供类似dict的api来获取和设置值。


假设我们把相应的参数都放在config.py文件中,然后调用这个文件即可调用其中的参数

from mmcv import Config
cfg = Config.fromfile('./config/config.py')
cfg
Config (path: ./config/config.py): {'a': 1, 'b': {'b1': [0, 1, 2], 'b2': None}, 'c': (1, 2), 'd': 'string'}
cfg.a
1
cfg.b
{'b1': [0, 1, 2], 'b2': None}
cfg.d
'string'

说明:

这个的用法还是比较简单的,其自动以字典的形式保存,我们也可单独调用每个参数,这样做的好处是,可以将项目中的所有参数都写到这一个文件中,方便修改。


最后贴上自己设置的参数代码

PARA = dict(
    train=dict(
        epochs = 100,
        batch_size = 64,
        lr = 0.001,
        momentum=0.9,
        wd = 5e-4,
        num_workers = 2,
        divice_ids = [1],
        gpu_id = 0,
        num_classes=10,
    ),
    test=dict(
        batch_size=100
    ),
    cifar10_paths = dict( #这些路径函数需要替换成自己的,最好写成相对路径,而不是绝对路径
        validation_rate = 0.05,

        root = '../../DATASET/cifar10/',

        original_trainset_path = '../../../DATASET/cifar10/cifar-10-python/',#train_batch_path
        original_testset_path = '../../../DATASET/cifar10/cifar-10-python/',

        after_trainset_path = '../../../DATASET/cifar10/trainset/',
        after_testset_path = '../../../DATASET/cifar10/testset/',
        after_validset_path = '../../../DATASET/cifar10/validset/',

        train_data_txt = '../../../DATASET/cifar10/train.txt',
        test_data_txt = '../../../DATASET/cifar10/test.txt',
        valid_data_txt = '../../../DATASET/cifar10/valid.txt',
    ),
    utils_paths = dict(
        checkpoint_path = './cache/checkpoint/',
        log_path = './cache/log/',
        visual_path = './cache/visual/',
        params_path = './cache/params/',
    ),
)

参考文献

1. mmcv官方文档

2. mmcv常用功能及函数说明

最后感谢我的师兄,是他手把手教我搭建了整个项目,还有实验室一起学习的小伙伴~ 希望他们万事胜意,鹏程万里!

上一篇:Pytorch之cifar10数据集训练


下一篇:第五讲 卷积神经网路-- Inception10 --cifar10