Skip to content

Latest commit

 

History

History
41 lines (24 loc) · 3.37 KB

python-translation.md

File metadata and controls

41 lines (24 loc) · 3.37 KB

ML 알고리즘을 Python 코드로 변환

Jupyter 노트북으로 생성한 ML 알고리즘을 Python 코드로 변환하는 과정에 대해 설명합니다.

  1. 확장자가 ipyb인 jupyter notebook 파일을 아래 명령어를 이용하여 python 파일로 변환 합니다.
jupyter nbconvert xgboost-wine-quality.ipynb --to script --output step0-xgboost-wine-quality

xgboost-wine-quality.ipynb을 상기 명령어로 변환하면, step0-xgboost-wine-quality.py와 같이 python 파일로 변환할 수 있습니다.

  1. 불필요한 코드 정리

jupyter notebook에서 데이터의 구조를 이해하고, 도표를 작성할때 사용했던 코드들은 본격적인 학습에서는 사용되지 않습니다. 따라서, step1-xgboost-wine-quality.py와 같이 불필요한 코드를 삭제합니다.

  1. Python 함수로 리팩터링

함수로 변경하면 refactoring이 쉬워지고 유지 관리가 수월하여 지므로 step2-xgboost-wine-quality.py와 같이 함수로 변환합니다. 이때, main은 진입점(entry point)이므로 실행중인지 여부를 확인하여 아래처럼 사용합니다.

if __name__ == '__main__':
    main()
  1. Inference

xgboost-wine-quality-inference.ipynb을 참조하여 추론(inference)를 위한 python 코드를 생성합니다. 추론을 위해서는 학습시 저장한 모델을 부르고, RESTful API 특성에 맞춰서 event를 처리할 수 있어야 합니다. inference.py은 학습한 모델을 로드하고, event를 parsing하여 predict()에서 사용할 수 있는 포맷으로 변환한 다음에 추론을 수행하고, 결과를 리턴값으로 전달하는 것을 보여줍니다.

추론 동작을 확인하기 위해 inference-test.py에서는 samples.json을 로드하여, RESTful API에서 사용하는 event의 형태를 만든후에, inference.py의 handler()을 통해 추론 동작을 수행합니다. 따라서, 실제 인프라를 구축하여 추론 API를 생성하기 전에 inference.py의 동작을 검증할 수 있습니다.

Reference

ML 실험을 프로덕션 Python 코드로 변환

SageMaker basic - XGBoost

xgboost_starter_script.py