콘텐츠로 이동

Train

video_classification.Trainer

Video Classification 모델을 학습하기 위한 Trainer 클래스입니다.

Usage

demo/demo_train.py 참고


build(config, data) classmethod

Trainer 인스턴스를 생성합니다.

Parameters:

Name Type Description Default
config dict

Trainer를 build 하기 위한 config가 담긴 dictionary 입니다.

{
    "roi": Optional[tuple[int, int, int, int]],  # ROI 좌표 (x1, y1, x2, y2)
    "augmentation" Optional[List[Dict]], # augmentation 설정, None 이면 내부에 정의된 default augmentation을 사용합니다.
    "use_sampler": bool,  # sampler 사용 여부 (기본값: True). 학습 영상이 10분 이상인 경우 학습이 느려질 수 있습니다.
}

required
data list[dict]

Trainer가 사용할 train data가 담겨있는 dictionary 입니다.

[
    {
        "clip_path": str,
        "target_frames": list[dict],
            [
                {
                    "start_frame_idx": int,
                    "end_frame_idx": int
                },
                ...
            ]
    },
    ...
]

required

Returns:

Name Type Description
Trainer Trainer

build가 완료된 video_classification.Trainer 클래스의 인스턴스를 반환합니다.


to_device(device)

Trainer의 모델을 device에 올립니다.

Parameters:

Name Type Description Default
device Union[device, str, int]

GPU 번호 (int) 또는 "cpu" (str) 입니다.

required

Returns:

Type Description
None

None


train_one_step()

Trainer의 모델을 한 step 학습합니다.

Returns:

Type Description
dict[str, Any]

dict[str, Any]: 학습 결과를 담고 있는 dictionary 입니다. 다음과 같은 키를 가집니다.

{
    "step": int,  # 현재까지 진행된 총 학습 step.
    "epoch": int,  # 현재까지 진행된 총 학습 epoch.
    "epoch_step": int,  # 현재 epoch에서 몇 번째 step인지를 나타냄.
    "loss": float,  # 학습에 사용되는 모든 loss를 모두 더한 값.
    "step_time(sec)": float,  # 학습을 1 step 진행하는데 걸린 총 시간
    "data_time(sec)": float,  # 데이터를 로딩하는데 걸린 시간
    "model_time(sec)": float,  # 모델 학습에 걸린 시간
}


save_checkpoint(checkpoint_path, metadata=None, password=None, **options)

Trainer의 모델을 checkpoint_path에 저장합니다.

Parameters:

Name Type Description Default
checkpoint_path str

체크포인트 경로

required
metadata Optional[dict]

메타데이터

None
password Optional[str]

패스워드

None

Returns: None