반응형
케라스를 통해 딥러닝 모델을 학습시켜 저장하는데까지 성공하였다.
그 다음 저장된 모델을 다시 불러와서 학습했던 accuracy나 loss값을 확인해야 하는데, 우여곡절 끝에 다음과 같은 코드를 작성했고, 실제로 정상적으로 모델값을 불러와 학습이 끝난 직후의 값과 동일한 결과를 재차 확인할 수 있었다.
- 1. 모델을 저장하는 코드(model_save)
- 2. 모델을 불러오는 코드(model_load)
- 3. 불러온 모델을 평가하는 코드(model.compile, model.evaluate)
순서로 글을 정리하고 나중에 참고하기 편하게 글을 적어 보았다.
모델 예시(10개의 클래스 분류)
1
2
3
4
5
6
7
8
9
10
11
|
# model
model = Sequential()
model.add(Conv1D(128, 26, padding='same', input_shape=model_shape))
model.add(LeakyReLU(0.3))
model.add(Conv1D(256, 26, padding='same'))
model.add(LeakyReLU(0.3))
model.add(Dropout(0.0075))
model.add(Flatten())
model.add(Dense(128))
model.add(LeakyReLU(0.4))
model.add(Dense(10, activation='softmax'))
|
cs |
1. 모델 저장 (Model과 Weight를 각각 나누어 저장)
1
2
3
4
5
6
7
8
9
|
# Save model
model_json = model.to_json()
with open("model.json", "w") as json_file :
json_file.write(model_json)
# Save model weights
model.save_weights("model_weight.h5")
print("Saved model to disk")
|
cs |
2. 모델 불러오기 (Model과 Weight를 각각 불러오기)
1
2
3
4
5
6
7
8
9
10
|
# model load
from keras.models import model_from_json
json_file = open("model.json", "r")
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
# model weight load
model.load_weights("model_weight.h5")
print("Loaded model from disk")
|
cs |
3. 모델 평가하기 (x_train, y_train, x_val, y_val, x_total, y_total은 본인 데이터셋에 맞게 수정, model.compile꼭 해줘야함)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# evaluate
model.compile(loss='categorical_crossentropy', optimizer=Adam(0.0000045), metrics=['accuracy'])
train_score = model.evaluate(x_train, y_train, verbose=0)
val_score = model.evaluate(x_val, y_val, verbose=0)
total_mean_score = model.evaluate(x_total, y_total, verbose=0)
print('training loss : ' + str(train_score[0]))
print('validation loss : ' + str(val_score[0]))
print('training accuracy : ' + str(train_score[1]))
print('validation accuracy : ' + str(val_score[1]))
print('total loss : ' + str(total_mean_score[0]))
print('total accuracy : ' + str(total_mean_score[1]))
|
cs |
#keras model.compile(), #keras model.evaluate(), #keras model.load_weights()
반응형
'Python_basic' 카테고리의 다른 글
tip)파이썬으로 엑셀 다루기 (Python Excel handling) (0) | 2020.02.28 |
---|---|
Tip)Python으로 Matlab(매틀랩) 포멧 파일 열기 (1) | 2020.02.26 |
python glob함수로 리스트 정렬하기(이미지파일 제목 정렬) (0) | 2020.02.21 |
윈도우10(windows 10)에서 Pytorch 설치하고 GPU사용하기 (0) | 2019.10.03 |
파이썬 헷갈리는 부분 정리(if, while 문) (0) | 2019.07.31 |
댓글