Construcción del proyecto PytorchCNN 5 --- mmcv_config

El código general se puede ver en mi github


Breve descripción de MMCV

mmcv es una función de biblioteca básica de Python, que incluye:

  • File IO (proporciona dos interfaces generales para cargar y volcar diferentes formas de archivos)
  • Imagen (implementada en opencv, debe asegurarse de que OpenCV se haya instalado durante el uso)
  • Video (incluidas las interfaces de conversión y lectura de video, algunos métodos de edición de video y lectura / escritura / flexión de flujo óptico)
  • Aquí utilizo principalmente el módulo Config en Utils (este módulo admite la carga de la configuración desde una variedad de formatos de archivo y proporciona una API similar a un dict para obtener y establecer valores), por lo que presentaré esta parte en detalle. Si tiene otros requisitos, puede descargarlo de Consulte los documentos oficiales del sitio web en la literatura para aprender.

La clase Config se usa para procesar config y archivos de configuración. Admite la configuración de carga desde múltiples formatos de archivo (incluidos python, json y yaml). Proporciona una api similar a dict para obtener y establecer valores.


Supongamos que colocamos los parámetros correspondientes en el archivo config.py y luego llamamos a este archivo para llamar a los parámetros

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'

Descripción:

El uso de esto es relativamente simple. Se guarda automáticamente en forma de diccionario. También podemos llamar a cada parámetro por separado. La ventaja de esto es que todos los parámetros del proyecto se pueden escribir en este archivo para una fácil modificación.


Finalmente, pegue el código de parámetro que configuró

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/',
    ),
)

referencias

1. documentación oficial mmcv

2. Funciones comunes y descripciones de funciones de mmcv

Finalmente, me gustaría agradecer a mi hermano, que me enseñó a construir todo el proyecto, y a los amiguitos que estudiaron juntos en el laboratorio ~ ¡Espero que tengan éxito en todo y que tengan un gran futuro!

Supongo que te gusta

Origin blog.csdn.net/qq_44783177/article/details/113774870
Recomendado
Clasificación