[연습용] 추론자동화 제출_이미지 분야

2023.07.16 - 2024.12.31
72

🌸 이미지 분야 AI 모델 개발하기

매일매일, 내가 원하는 때 언제든 결과를 제출해서 점수를 확인할 수 있어요 💯

드.디.어. 내가 원하는 때 언제든 결과물을 제출해 볼 수 있는 상시 오픈 태스크가 열렸습니다! 

 

저희 인공지능팩토리에서는 다양한 경진대회를 개최하고 운영하지만 참가자 분들께서 대회 기간 뿐만 아니라 

‘내가’ 원할 때 모델 개발을 할 수 있는 태스크를 찾기가 어려우셨을텐데요 😢 

이제부터는 AIF 회원이라면 언제든 결과를 제출해보고 실시간으로 점수를 확인해 볼 수 있는 태스크가 열렸습니다 :) 

 

지금 바로 위쪽의 ‘참여하기’ 버튼을 누르고 이미지 분야 AI 모델 개발을 시작해볼까요? 

======== 종료 ========
🎁 EVENT 🎁 7월에 결과물 제출해보시고 시원한 빙수 받아가세요 🍧

7월 25일 안으로 가장 먼저 아래 2가지를 모두 다 완수하신 30명에게 인공지능팩토리가 빙수를 쏩니다! 

■ 빙수 획득 조건 

  • 기간 : 7월 17일 ~ 7월 25일 23:59까지 
  • 아래 미션 2개를 모두 완수한 사람!
    1. 3회 이상 제출해보기
    2. ‘토론’ 탭에 본인의 제출 경험에 대해서 말해주기
      • 😁 제출에 한번이라도 ‘성공’ 했다면 인증샷과 함께 2-3줄로 성공 비결 공유 
        • 예: “튜토리얼에 있는 베이스라인 코드 참고해서 순서대로 잘 따라 했더니 제출 성공했습니다~”
        • 예: “처음에는 ㅇㅇ부분에서 에러가 났었는데 ㅁㅁ를 수정하니 바로 성공했어요!”
      • 🥲 제출에 3회 모두 실패했다면 에러 로그를 코드와 함께 토론 글에 올리기
        • 예: “코랩에서 계속 시도해봤는데 ㅇㅇ에러가 계속 나왔어요 ㅠㅜ”
        • 예: “튜토리얼에 나와있는 베이스라인 코드를 따라했는데 ㅁㅁ 부분에서 에러가 났네요 ㅜ”
  • 3개 분야 (이미지, 자연어, 시계열) 통틀어 선착순 30명에게 '이디야 팥인절미 1인 빙수 기프티콘’  2개 증정!
  • 당첨자 발표는 8월 첫주에 당첨자에게 별도 안내드립니다.

 

🌸 모델 개발 규칙

튜토리얼 맛보기

추론 자동화 기술이 접목된 태스크는 기존 채점 방식과 살짝 달라 조금 어려우신가요? 

먼저 튜토리얼을 경험하고 다시 이 태스크로 돌아오세요! 제출 과정이 훨씬 쉬워질 거예요 👍🏼

추론 함수 입력 및 출력 규칙

입력 규칙

  • 추론 함수의 첫 번째 인자로 받는 평가용 입력 데이터는 평가 이미지 데이터들의 경로가 담긴 List가 제공됩니다.
    X_test = ["ImagePath_000.jpg", “ImagePath_001.jpg”, “ImagePath_002.jpg”, …]
  • (Arg1) X_test, (Arg2) Model 2개의 인자를 입력 받아 평가 데이터를 추론 하고, 다음 출력 규칙에 맞게 반환해주세요.

 

출력 규칙

  • 추론 함수는 X_test를 예측한 뒤, 예측한 꽃 품종의 이름이 담긴 List를 반환해야 합니다.
    ['daisy', 'dandelion', 'roses', 'sunflowers', 'tulips', ... ]

 

Example

# 모델 로드함수 정의
def load_model():
	model = Sequential([
		...
	])
	model.compile(optimizer='adam', ...)
	model.load_weights('./my_weights.h5')
	return model

# 추론 함수 정의
def infer(X_test, model):
	classes = ['daisy', 'dandelion', 'roses', 'sunflowers', 'tulips']
	pred_names = []
	for image_path in X_test:
		image = Image.open(image_path).resize((180, 180))
		image = np.array(image, np.uint8)
		image = np.expand_dims(image, axis=0)
		
		proba = model.predict(image)
		pred_id = np.argmax(proba, axis=1)[0]
		pred_name = classes[pred_id]
		
		pred_names.append(pred_name)
		
	return pred_names # ['daisy', 'dandelion', 'roses', 'sunflowers', 'tulips', ... ]
	
# 제출하기
from aifactory.score import submit_kwargs
submit_kwargs(
    model_name="sample submission",
    key=...,
    load_model_fn = load_model,
    inference_fn = infer
    )
	

평가 방법

  • 평가 메트릭은 F1-Score(macro)를 사용합니다.
    F1_Score = 2 * (precision * recall) / (precision + recall)

 

CODE. ALL. DAY. ---