본문 바로가기

분류 전체보기119

learning_curve 함수 설정 def learning_curve(history, epoch): # 정확도 차트 epoch_range = np.arange(1, epoch+1 ) plt.plot(epoch_range, history.history['accuracy']) plt.plot(epoch_range, history.history['val_accuracy']) plt.title('Model Accuracy') plt.xlabel('Epoch') plt.ylabel('Accuracy') plt.legend( ['Train', 'Val']) plt.show() # loss 차트 epoch_range = np.arange(1, epoch+1 ) plt.plot(epoch_range, history.history['loss']) plt... 2021. 3. 4.
epoch마다 기록을 남기는 CSVLogger epoch마다 가장 좋은 모델을 찾아 저장하는 ModelCheckpoint도 있지만, epoch마다 그 훈련 기록을 저장하는 CSVLogger도 있다. 사용을 하기 위해 먼저 라이브러리 적용 후 from tensorflow.keras.callbacks import CSVLogger csv_logger = CSVLogger(filename=LOGFILE_PATH, append = True) CSVLogger를 설정하고 변수에 저장한다. filename= : 저장할 파일명. csv append = : True로 설정시 기록을 덮어쓰지않고 차례로 계속 저장한다. 이외 separator도 자주 쓴다. csv파일에서 요소를 구분하는데 뭘로 구분할것인지..(ex)separator=',' 후에 모델 훈련시 사용한다... 2021. 3. 4.
epoch마다 가장 좋은 모델을 저장하는 ModelCheckpoint 딥러닝을 할때 성능을 위해서 epoch를 설정한다. ( 너무 많은 epoch는 오버핏이 될 수 있다.) 일일이 직접 모니터 하지 않아도, epoch마다 성능이 올라가면 자동으로 저장해주는 ModelCheckpoint가 있다. from tensorflow.keras.callbacks import ModelCheckpoint cp = ModelCheckpoint(filepath=CHECKPOINT_PATH, monitor='val_accuracy', save_best_only = True, verbose = 1) 라이브러리 적용 후 ModelCheckpoint를 설정한다. filepath : 저장할 경로, 위에서는 경로가 변수로 저장되어 있어 변수로 쓰였다. monitor : 어떤걸 보고 저장할 것인가. 난.. 2021. 3. 4.
Fine Tuning 코드 진행 Fine Tuning은 트랜스퍼러닝을 한 후에 조금 더 성능을 향상 시키고자 할 때 한다. 기존 모델을 실시한 후에 실시하는것이 핵심! basemodel 전체를 훈련시키는 것이 아닌 앞부분은 놔두고, 뒷부분을 설정해서 설정한 구간부터 끝까지 훈련을 실행한다. len( baseModel.layers ) start_layer = 120 baseModel.trainable=True for layer in baseModel.layers[ 0:start_layer ] : layer.trainable = False model.compile(optimizer=Adam( lr=0.0001 ), loss='categorical_crossentropy', metrics='accuracy') model.fit(trainGe.. 2021. 3. 4.
728x90