Skip to content

Train

rotated.Trainer

Rotated Object Detection 모델을 학습하기 위한 Trainer 클래스입니다.

Usage

demo/train.py 참고

build(config, data) classmethod

Trainer class의 instance를 생성합니다.

Parameters:

Name Type Description Default
config dict

Trainer를 build 하기 위한 config가 담겨 있는 dictionary 입니다.

{
    "network_type": str,  # "v2_fast"만 지원합니다.
    "total_iterations": int,  # total training iterations
    "n_classes": int,  # number of data classes
    "head_aware": bool,  # head 방향을 고려해서 학습할지를 결정합니다. (default True, 이미지에 대칭성이 있어 head 방향이 모호한 경우에 False가 권장됩니다.)
    "batch_size": int,  # number of train batch size (default 12)
    "roi": dict | None,  # roi 세팅. ROIHandlerAPI의 build config와 동일합니다. None이면 ROI 적용 안함. (default None)
    "image_resize_wh": list[int] | tuple[int, int],  # training image resize (default (640, 640))
    "augmentation": list[dict] | None,  # 학습에 사용할 augmentation config들을 모은 list 입니다. (default None)
    "multipage": dict | None,  # multipage 설정. None인 경우 multipage 사용 안 함. (default None, 현재 미지원)
    "num_workers": int,  # number of train data worker processes (default 0)
}

required
data dict

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

{
    "train_images": {
        "{image_id}": {
            "path": str,
            "width": int,
            "height": int,
            "labels": [
                {
                    "class_index": int,
                    "bounding_rot_box": list[float],  # [center_x, center_y, width, height, radian]
                },
                ...,  # times number of labels in the image
            ],
        },
        ...,  # times number of images
    },
    "validation_images": dict[str, dict] | None, # validation data. train_images와 동일한 구조. (default None)
}

required

Returns:

Name Type Description
Trainer Trainer

build가 완료된 classification.Trainer class의 instance를 반환합니다.

to_device(device)

Trainer의 device를 변경합니다. (cpu/gpu)

Parameters:

Name Type Description Default
device device | str | int

변경하고자 하는 device 입니다. int의 경우 해당 번호의 GPU를, "cpu" 문자열의 경우 cpu를 사용합니다.

required

Returns:

Name Type Description
None None

None

train_one_step()

학습을 1스텝 수행하고, 결과를 반환합니다.

Returns:

Name Type Description
dict dict

학습 결과가 들어있는 dictionary를 반환합니다.

validation_enabled()

Trainer가 validation이 가능한지 bool로 반환합니다.

Returns:

Name Type Description
bool bool

Trainer가 validation이 가능하면 True를, 불가능하다면 False를 반환합니다.

validate()

Validation을 수행하고, 결과를 리턴합니다.

Returns:

Name Type Description
dict dict

validation 결과가 들어있는 dictionary를 반환합니다.

{
    "rotated_iou/polygons/class_{idx}/AP{iou}": float, # 각 {idx} class 별 AP{iou} value.
    "rotated_iou/polygons/mAP{iou}": float, # mean AP{iou} value.
}

post_train_process()

train 후처리를 수행하고, 해당 모델의 default inference options을 리턴합니다.

Returns:

Name Type Description
dict dict

각 parameter에 대한 설명은 InferenceHandler.get_default_inference_option를 참고해주세요.

{
    "params.batch_size": int,
    "params.apply_nms": bool,
    "params.object_score_threshold": list[int],
    "params.max_num_of_detected_objects": list[int],
}

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

현재 Trainer의 상태를 암호화하여 저장합니다.

Parameters:

Name Type Description Default
checkpoint_path str

checkpoint를 저장할 path 입니다.

required
metadata dict | None

checkpoint에 저장할 추가 metadata. Defaults to None.

None
password str | None

checkpoint 파일에서 중요한 정보를 암호화 하는데 사용되는 password 입니다. None이면 암호화하지 않습니다. Defaults to None.

None

Returns: None: None

load_checkpoint(checkpoint_path, password=None)

저장한 checkpoint로부터 Trainer의 상태를 불러오고, metadata를 반환합니다.

Parameters:

Name Type Description Default
checkpoint_path str

load할 checkpoint가 저장 되어 있는 path 입니다.

required
password str | None

checkpoint 파일에서 중요한 정보를 복호화 하는데 사용되는 password 입니다. None이면 복호화하지 않습니다. Defaults to None.

None

Returns:

Name Type Description
dict dict

save_checkpoint에서 저장했던 metadata 입니다.