인공지능 응용 공학

No validation prediction of unseen image using callback weights

coding art 2023. 6. 14. 15:47
728x90

tf.keras.utils.image _dataset_from_directory 명령의 파라메터 validation_split=0.0 인 경우에는 데이터 전체를 학습에만 사용할 수 있도록 코드를 수정해 보자.

 

train_ds 에서 파라메터인 subset=“training”을 지우도록 한다. training 파트가 더 이상 부분집합(subset) 이 아닌 집합(set) 자체로 바뀌기 때문이다. val_ds 와 관련된 코드도 전부 삭제한다.

1 train_ds = tf.keras.utils.image_dataset_from_directory(
data_dir,
validation_split=0.0,
#subset="training",
shuffle=True,
seed=1234,
image_size=(img_height, img_width),
batch_size=batch_size)

 

callback 데이터 저장을 위한 경로를 training_only 로 바꾸어 설정한다.

2 checkpoint_path = "training_only/cp.ckpt"

아울러 model.fit 에서 사용되는 validation_data=val_ds 항도 삭제하자.

3 history = model.fit(
train_ds,
epochs=20,
callbacks=[cp_callback]
)

 

validation 과정이 모조리 삭제되었으므로 마지막 evaluate 과정도 삭제하자.

4 loss, acc = model.evaluate(valid_image_batch, valid_label_batch, verbose=2)

epoch=20 으로 학습이 진행됨에 따라 Accuracy 1.0 에 접근한다.

첨부된 utilscallbacktrainonly.py를 다운받아 실행해 보자.

utilscallbacktrainonly.py
0.00MB

callback 에 의해 학습 가중치를 저장했으면 임의의 이미지에 대한 에측 작업을 시행해 보자.

첨부된 callback_single_only_image.py 를 다운받아 실행해 보자.

 

callback_single_only_image.py
0.00MB