훈련과 Predict를 분리할수 없나요?
91
작성한 질문수 8
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
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Colab실습관련
0
57
2
get_dummies 관련문의
0
61
2
강의 수강
0
72
1
섹션 10 비지도 학습에 대하여
0
64
1
scikit-learn이 업데이트 된 건가요?
0
157
2
feature scaling 부분
0
121
2
MAtplotlib 기초
0
116
1
섹션9 First Autoencoder 인코더, 디코더 모델 생성 오류 해결 방법
0
194
1
섹션7 텐서플로 허브 Trained_MobileNet 모델 생성 오류 해결 방법
0
328
1
Crash 파일 위치
0
249
1
주피터에서 파일 열기
0
305
1
션 7. CNN (Convolutional Neural Network)의 7번째 강의는 실습 - FashionMNIST 데이터셋 이용 실습 문제 풀이 관련 강의 내용순서 문의
0
244
1
DBSCAN 실습 결과
0
258
1
DBSCAN 질문
0
220
1
Feature Scaling 강의 질문 있습니다!
0
248
1
heatmap에서 numeric_only=True
0
299
1
pd.Series
0
217
1
Feature Scaling
0
222
1
categorical 변수의 수치화
0
179
1
Residual Error
1
182
1
매트릭스로 만들어주는 것
1
179
1
tf.data 를 이용한 shuffling and batch 구성 관련 문의
1
362
2
타이타닉 예제에서 혼동되는 개념이있습니다!
1
274
1
LeNet-5 실습 중 loss값 nan이 나오고 있습니다.
0
653
1





