Skip to content

학습 진행 상태

개요

학습 진행 상태를 플랫폼에 전달하는 방법은 rabbitmq message queue에 상태 메시지를 던지는 형태로 이루어 집니다. Rabbitmq message queue에 대한 정보는 학습 설정 파일에서 확인 할 수 있습니다.

  • message_host
  • message_port
  • message_id
  • message_pw
  • queue_name

상태 메세지

cmd

training_status | validation_status

어떤 command인지 구분하는 값입니다.

상태 전달 메세지는 학습 진행 상태와 검증 진행 상태로 나눠지고 학습/검증이 어떤 것에 대한 것인지 구분하는 식별자가 반드시 포함 되어야 합니다.

학습/검증에 따라 사용되는 CMD 및 식별자

  • 학습 : cmd: training_status, model_id: 모델 id
  • 검증 : cmd: validation_status, validation_id: 검증 id

status

training_ing | training_done | training_error

첫 "training_ing"을 받았을때 학습이 시작된것으로 인식하고, 그 이전은 "대기중" 상태로 표시됩니다.

"training_ing"은 현재 step의 진행 상태(percentage)를 사용자에게 보여주기 위해 매 step 마다 보내는 메시지입니다.

학습이 끝난 시점에 "training_done"을 보내고 종료해야 합니다. 그렇지 않으면 비정상 종료로 인식하게 됩니다. ("training_done"의 경우 "model_id"만 있으면 됩니다.)

에러 발생시에는 "training_error"를 "message" 필드와 함께 던져서 에러가 발생했음을 인식하게 할 수 있습니다. (error 처리 이후 "training_ing"나 "training_done 을 보내도 처리되지 않습니다.)

project_key

학습 설정 파일내 project_key

학습을 진행하고 있는 프로젝트의 인증 키입니다. 필수 데이터이며 학습 설정 파일에 정의 되어 있는 "project_key" 를 전달해야 합니다.

model_id

학습 설정 파일내 model_id

학습을 진행하고 있는 모델에 대한 식별자입니다. 필수 데이터이며 학습 설정 파일에 정의 되어 있는 "model_id" 를 전달해야 합니다.

검증의 경우 validation_id 입니다.

message

text message

에러 발생에 대한 메시지입니다. 사용자에게 보여줄 메시지이므로 최대한 친절한 메시지를 포함하는 것이 좋습니다.

예) 학습용 이미지의 크기가 적절하지 않습니다. 3000x2000을 기대했는데, 300x200이 제공 되었습니다

percentage

0~100 사이의 숫자

0~100 사이의 값으로 사용자에게 보여줄 진행율 입니다. 참고용 이므로 엄격하게 계산할 필요는 없습니다.

step

학습중인 현재 step 번호

현재 학습중인 step 번호 입니다.

학습 진행

json
{
    "cmd": "training_status",
    "project_key": project_key,
    "model_id": model_id,
    "status":  "training_ing",
    "percentage": percentage,
    "step": step,
}

학습 완료

json
{
    "cmd": "training_status",
    "project_key": project_key,
    "model_id": model_id,
    "status":  "training_done",
}

학습 에러

json
{
    "cmd": "training_status",
    "project_key": project_key,
    "model_id": model_id,
    "status":  "training_error",
    "message": "error message",
}

학습 그래프

"model_write_path"/save/metrics 아래에 log file을 생성하면 플랫폼에서 해당 데이터를 읽어 학습 그래프로 표시하게 됩니다.

여러 metric을 추적하려면 여러 log file을 생성하면 됩니다.

각 log file의 포멧과 규칙은 아래와 같습니다.

  • 첫 라인에 필드명을 포함해야 합니다.
  • 첫 컬럼은 graph 의 시간축(x값) 입니다.
  • 두번째 이후의 컬럼들은 각각 다른 색상으로 표현되는 graph 의 y값 입니다.
Main axis name, graph1 name, graph2 name
1, 0.2, 0.2
2, 0.3, 0.25
3, 0.4, 0.4