강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

nkhwi님의 프로필 이미지
nkhwi

작성한 질문수

파이썬을 활용한 머신러닝 딥러닝 입문

실습 - 앙상블 학습 (Ensemble Learning) - RandomForest & GradientBoost

훈련과 Predict를 분리할수 없나요?

작성

·

44

0

AI강의중 Best였던것 같습니다.

 

강의 다 듣고 나서 한가지 궁금한게 생기는데

강의 코딩에는 모두 한 소스코드에서

훈련(fit)하고 바로 predict하는 pattern으로 소스가 제공되었습니다.

 

혹시 훈련(fit)해서 어딘가에 저장해 두었다가 해당 저장내용을 기반으로 특정 필요한 시점에 predict 해서 결과를 사용하고 싶은데 이런 방법이 있을까요?

이 방법이 설명이 간단하지 안다면 책이나 인터넷 사이트라도 추천해 주시면 감사하겠습니다.

 

 

답변 2

0

YoungJea Oh님의 프로필 이미지
YoungJea Oh
지식공유자

입문 강의에서는 이해를 돕기 위해 fit() 후 곧바로 predict()를 수행하는 구조로 예제를 구성했지만,
실제 프로젝트나 실무 환경에서는 모델을 학습(fit)한 후 파일로 저장하고, 필요한 시점에 불러와 예측(predict)만 수행하는 방식이 일반적입니다.
scikit-learn의 경우,

joblib.dump(model, 'model.pkl') # 모델을 파일로 저장

model = joblib.load('model.pkl') # 저장된 모델 불러오기

y_pred = model.predict(X_test) # 예측 수행

TensorFlow (Keras)의 경우,

model.save('my_model')

model = load_model('my_model') # 저장된 모델 불러오기

y_pred = model.predict(X_test) # 예측 수행

이런 방식으로 사용하게 됩니다. 좋은 질문 감사합니다.

nkhwi님의 프로필 이미지
nkhwi
질문자

빠르고 상세한 답변 너무 감사합니다. 하시는 일이 잘 되시길 바랍니다.^^

0

안녕하세요, 인프런 AI 인턴입니다.

nkhwi님이 질문해 주신 내용은 머신러닝 모델을 훈련(fit)한 뒤, 그 모델을 저장하여 나중에 필요할 때 불러와서 예측(predict)하는 방법에 관한 것입니다. 이는 매우 일반적인 요구 사항이며, 특히 실무에서 자주 사용됩니다. 기본적으로 파이썬의 머신러닝 라이브러리인 TensorFlow나 Keras, Scikit-learn에서는 모델을 저장하고 불러오는 기능을 지원하고 있습니다.

다음은 일반적인 방법입니다:

  1. 모델 저장: 모델을 저장할 때는 두 가지 방법을 사용할 수 있습니다.

    • 전체 모델 저장: model.save('model_name.h5')를 사용하면 모델의 구조, 가중치, 컴파일 정보까지 포함한 전체 모델이 저장됩니다.
    • 가중치만 저장: model.save_weights('weights_name.h5')를 사용하면 모델의 가중치만 저장할 수 있습니다. 이후 모델의 구조는 별도로 정의해야 합니다.
  2. 모델 불러오기 및 예측:

    • 저장한 모델을 불러올 때는 keras.models.load_model('model_name.h5')를 사용합니다.
    • 불러온 모델을 통해 예측을 수행할 수 있습니다. 예를 들어, loaded_model.predict(data)의 형태로 사용됩니다.

이러한 방법을 통해 훈련과 예측 과정을 분리하여 유연하게 모델을 사용할 수 있습니다. 추가적으로, Scikit-learn에서는 joblib 또는 pickle을 사용하여 모델 객체를 저장 및 로딩할 수 있습니다.

관련된 참고 자료로는 다음과 같은 것들이 있습니다:
- 케라스 공식 문서: Saving and serializing models
- Scikit-learn 공식 문서: Model persistence

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

nkhwi님의 프로필 이미지
nkhwi
질문자

상세한 예제까지 곁들인 답변에 대단히 감사드립니다. 잘 이해가 되었습니다.

nkhwi님의 프로필 이미지
nkhwi

작성한 질문수

질문하기