작성
·
44
0
AI강의중 Best였던것 같습니다.
강의 다 듣고 나서 한가지 궁금한게 생기는데
강의 코딩에는 모두 한 소스코드에서
훈련(fit)하고 바로 predict하는 pattern으로 소스가 제공되었습니다.
혹시 훈련(fit)해서 어딘가에 저장해 두었다가 해당 저장내용을 기반으로 특정 필요한 시점에 predict 해서 결과를 사용하고 싶은데 이런 방법이 있을까요?
이 방법이 설명이 간단하지 안다면 책이나 인터넷 사이트라도 추천해 주시면 감사하겠습니다.
답변 2
0
입문 강의에서는 이해를 돕기 위해 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) # 예측 수행
이런 방식으로 사용하게 됩니다. 좋은 질문 감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
nkhwi님이 질문해 주신 내용은 머신러닝 모델을 훈련(fit)한 뒤, 그 모델을 저장하여 나중에 필요할 때 불러와서 예측(predict)하는 방법에 관한 것입니다. 이는 매우 일반적인 요구 사항이며, 특히 실무에서 자주 사용됩니다. 기본적으로 파이썬의 머신러닝 라이브러리인 TensorFlow나 Keras, Scikit-learn에서는 모델을 저장하고 불러오는 기능을 지원하고 있습니다.
다음은 일반적인 방법입니다:
모델 저장: 모델을 저장할 때는 두 가지 방법을 사용할 수 있습니다.
model.save('model_name.h5')
를 사용하면 모델의 구조, 가중치, 컴파일 정보까지 포함한 전체 모델이 저장됩니다.model.save_weights('weights_name.h5')
를 사용하면 모델의 가중치만 저장할 수 있습니다. 이후 모델의 구조는 별도로 정의해야 합니다.모델 불러오기 및 예측:
keras.models.load_model('model_name.h5')
를 사용합니다.loaded_model.predict(data)
의 형태로 사용됩니다.이러한 방법을 통해 훈련과 예측 과정을 분리하여 유연하게 모델을 사용할 수 있습니다. 추가적으로, Scikit-learn에서는 joblib
또는 pickle
을 사용하여 모델 객체를 저장 및 로딩할 수 있습니다.
관련된 참고 자료로는 다음과 같은 것들이 있습니다:
- 케라스 공식 문서: Saving and serializing models
- Scikit-learn 공식 문서: Model persistence
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
빠르고 상세한 답변 너무 감사합니다. 하시는 일이 잘 되시길 바랍니다.^^