반응형 [MMEngine] Tutorial - Dataset과 DataLoader - Pytorch의 Dataset과 DataLoader 클래스의 개념에서 기반 DataLoader - DataLoader는 MMEngine의 Runner에 3가지 형태의 인수로 구성됨 - train_dataloader: 모델에 학습 데이터를 제공할기 위해 Runner.train()를 사용 - val_dataloader: 일정한 간격으로 모델 평가를 위해 Runner.train() Runner.val()를 사용 - test_dataloader: 최종 평가때 Runner.test()를 사용 - PyTorch의 DataLoader를 지원. Registry Mechanism of MMEngine 덕분에 dict형태로 인자를 받아들임. - dict형태로 Runner 전달시 lazily built in runner.. 2024. 1. 14. [MMEngine] Tutorial - Runner Runner - MMEngine안의 integrator로 모든 module 및 framework를 책임짐. - Runner's API documentation Simple Example import torch import torch.nn as nn import torch.nn.functional as F from torch.utils.data import Dataset from mmengine.model import BaseModel from mmengine.evaluator import BaseMetric from mmengine.registry import MODELS, DATASETS, METRICS @MODELS.register_module() class MyAwesomeModel(BaseMode.. 2024. 1. 14. [MMEngine] 빠른 Tutorial Model 빌드 - MMEngine내에서 모델은 BaseModel을 상속 받음 - 입력값으로 forward 메서드는 mode라는 인자를 받아야함. - training에서 mode는 loss, forward 메서드는 loss키를 포함한 dict를 반환 - validation에서 mode는 predict, forward 메서드는 예측값과 label들을 반환 import torch.nn.functional as F import torchvision from mmengine.model import BaseModel class MMResNet50(BaseModel): def __init__(self): super().__init__() self.resnet = torchvision.models.resnet50().. 2024. 1. 14. [MMEngine] 환경 설정 1. 가상환경 실행 및 pytorch 설치 - conda 가상환경 실행 conda create -n mmlab python=3.9 conda activate mmlab - pytorch 설치 및 버전 확인 import torch print(f"torch version: {torch.__version__}") print(f"GPU: {torch.cuda.is_avalialble()}") 2. MMEngine 설치 및 확인 - MMEigine 설치 pip install --force-reinstall mmengine - MMEigine 설치 확인 import mmengine print(f"mmengine version: {mmengine.__version__}") 2024. 1. 14. [MMEngine] 개요 MMEngine - Pytorch를 기반으로 하는 deep learning models을 학습하기 위한 라이브러리 - Linux, Windows와 macOS를 지원함 MMEngine의 3가지 특징 1. 범용적이고 강력한 executor - 최소한의 코드로 복잡한 task 학습 가능 - timm, torchvision, detectorn2와 호환 가능 2. 통합된 인터페이스의 공개된 구조 - 통합된 API로 다른 작업에 적용 가능 - 높은 레벨의 추상화를 통해 다양한 장비를 지원(Nvidia CUDA, Mac MPS, AMD, MLU) 3. 학습 과정 Custmize 가능 - 레고 같이 모듈화된 training engine - 다양한 component 제공 - 다양한 level의 API들로 학습 과정 제어.. 2024. 1. 14. [MMDetection] Train & Test - Configs - MMDetection repositories는 MMEngine's config system을 이용 - Reference: https://mmdetection.readthedocs.io/en/latest/user_guides/config.html Model Config - backbone, neck과 같은 neural network 구성요소들과 data_preprocessor, train_cfg, test_cfg들이 요구됨. - data_preprocessor는 DataLoader에 의한 data output을 처리함. - train_cfg, test_cfg는 학습과 평가를 하는 hyperparameter를 훈련하고 테스트하기 위한 구성요소 # 모델 설정 model = dict( type="detect.. 2024. 1. 13. [MMDetection] Customization - Models Customize Models - 모델은 5가지 타입으로 구성됨 - backbone: FCN network로 featurer map들을 추출함 - neck: backbone과 head의 사이에 있는 구성요소 - head: 특정한 task를 위한 구성요소 - roi extractor: feature map들에서 RoI 특징을 뽑아내는 부분 - loss: loss를 계산하기 위한 head의 구성요소 새로운 구성요소 추가하기 Backbone 추가하기 1. 새로운 backbone 생성: mmdet/models/backbones/모델명.py import torch.nn as nn from mmdet.registry import MODELS @MODELS.register_module() class 모델명(nn.Mo.. 2024. 1. 13. [MMDetection] 기본 개념 Data Flow Structures Models Datasets Data Transforms - 데이터 변환 파이프라인 설계하기 - 예시 # 학습 파이프라인 train_pipeline = [ dict(type='LoadImageFromFile', backend_args=backend_args), # 파일에서 이미지 불러오기 dict( type='LoadAnnotations', # 현재 이미지에 맞는 annotation 불러오기 with_bbox=True), dict( type='Resize', # 이미지와 annotation 사이즈 변경 scale=(1333, 800), keep_ratio=True ), dict( type='RandomFlip', # 이미지와 annotation 랜덤으로 뒤집기 pro.. 2024. 1. 13. [MMDetection] 환경설정 1. MMDetection 설치 및 실행 - pytorch cuda버전별 설치: https://pytorch.org/get-started/previous-versions/ - mmdet cuda버전별 설치: https://mmdetection.readthedocs.io/en/latest/get_started.html#customize-installation - 운영체제와 CUDA버전에 맞는 pytorch 설치 # CUDA 11.6 pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 - MIM을 이용하여 MMEngine과.. 2024. 1. 13. [MMDetection] 개요 MMDetection - MMDetection은 객체 탐지를 위한 toolbox로 객체 탐지, 인스턴스 세그멘테이션 그리고 판옵틱 세그멘테이션 등을 포함한 구성요소나 모듈을 포함함. - 7개의 부분으로 구성: apis, structures, datasets, models, engine, evaluation, visualization. - github: https://github.com/open-mmlab/mmdetection 구성요소 - apis: 모델 추론에 사용되는 고수준 API제공 - datasets: 객체 탐지, 세그멘테이션을 지원하는 다양하 데이터셋 - transforms: 데이터 증강에 필요한 툴을 포함 - samplers: strategy별 다양한 데이터로더 - models: detector.. 2024. 1. 13. 이전 1 다음 반응형