Tensorflow checkpoint 기능 활용 방법
620
작성한 질문수 2
안녕하세요 딥러닝을 구글colab을 이용하여 공부중인데 현재 이미지 학습 부분을 공부하고 있습니다.
하지만 결제를 하여도 런타임이 24시간이 한계라 훈련이 자꾸 중단되어 epoch를 전부 학습하지 못하고 있습니다!
그래서 1epoch마다 checkpoint를 저장하는 방법을 사용하여 훈련을 하고 있고, 현재 잘 저장이 되고 있습니다.
하지만 저는 항상 3/10 epoch에서 24시간이 지나 훈련이 중단 되는데 그러면 이때 3 까지 저장된 checkpoint를 불러와서
다시 4epoch부터 재 학습을 시킬수 있는방법이 궁금합니다! 검색을 해 보았지만 전부 학습이 완료된 데이터를 불러오는 예제 밖에 없어서 질문 남깁니다!
제가 사용한 코드는 아래와 같습니다.
from fastai.imports import *
from tensorflow.keras import datasets, layers, models, losses, Model
from tensorflow import keras
import tensorflow as tf
from keras.layers import Dense,Dropout,Activation,Add,MaxPooling2D,Conv2D,Flatten,BatchNormalization
from keras.models import Sequential
from keras.preprocessing.image import ImageDataGenerator
from keras import layers
import seaborn as sns
from keras.preprocessing import image
import numpy as np
import cv2
from google.colab.patches import cv2_imshow
import matplotlib.pyplot as plt
plt.style.use('seaborn-white')
data_path = '/content/drive/MyDrive/train_val_data'
train_dir = os.path.join(data_path,'train')
val_dir = os.path.join(data_path,'test')
classes = os.listdir(train_dir)
train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(
width_shift_range = 0.2,
height_shift_range = 0.2,
zoom_range = 0.2,
vertical_flip=True,
rescale = 1. / 255,
fill_mode='nearest')
val_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale = 1. / 255)
train_generator = train_datagen.flow_from_directory(
train_dir,
target_size=(224,224),
batch_size = 32,
class_mode = 'categorical'
)
val_generator = val_datagen.flow_from_directory(
val_dir,
target_size=(224,224),
batch_size = 32,
class_mode = 'categorical'
)
base_model = tf.keras.applications.ResNet50(weights = 'imagenet', include_top = False, input_shape = (224,224,3))
for layer in base_model.layers:
layer.trainable = False
x = layers.Flatten()(base_model.output)
x = layers.Dense(720, activation='relu')(x)
predictions = layers.Dense(360, activation = 'softmax')(x)
opt = tf.keras.optimizers.Adam(learning_rate=0.001)
checkpoint_path = "/content/drive/MyDrive/training_resnet50/resnet50_cp.ckpt"
checkpoint_dir = os.path.dirname(checkpoint_path)
# 체크포인트 콜백 만들기
cp_callback = tf.keras.callbacks.ModelCheckpoint(checkpoint_path,
save_weights_only=True,
verbose=1)
head_model = Model(inputs = base_model.input, outputs = predictions)
head_model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])
history = head_model.fit(train_generator, validation_data=val_generator, batch_size=32, epochs=100, callbacks = [cp_callback])
답변 0
수강 신청 연장 문의드립니다.
0
15
1
26년2회 실기기출은 언제쯤...
0
14
2
재귀함수 종료조건
0
9
1
git bash .env
1
12
1
예제 001 실행 안됩니다.
0
13
3
ipython 설치가 안되는거 같습니다.
0
9
1
이론 공부법 요약본 버전 업데이트 문의
0
15
2
피드백 내용 문의드립니다.
0
20
0
백준 서비스 종료로 인한 강의 자료 업데이트 요청드립니다.
0
22
1
백준 사이트 준비중이라 문제를 볼 수 가 없어요
0
22
1
작업형 1번문제... 환경관련
0
24
2
09차 네이버 영화 리뷰 수집 실습 관련 질문
0
26
1
12회 기출은 언제 업데이트 될까요??
0
34
2
알파벤티지 sleep(5) 관련 문의
1
39
2
강의 자료 및 코드 수령
0
29
2
8/6 작성한 연장문의 질문글에 대한 재요청
0
36
2
실전 계좌에서 운영하고 계신 분 계신가요?
1
40
2
수강기간 연장 문의
0
33
2
수강기간 연장문의
0
34
2
수강기간 연장 요청 문의드립니다
0
33
2
기초실습 BERT파인튜닝 예제 오류
0
25
1
Fal.ai에 기존 AI를 끌어오는것은 안되는건가요?
0
35
2
잘못된 파일 다운로드
0
35
1
DataSet 다운 받는 방법
0
30
1





