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/',
),
)
参考文献
最后感谢我的师兄,是他手把手教我搭建了整个项目,还有实验室一起学习的小伙伴~ 希望他们万事胜意,鹏程万里!