프로젝트 진행 과정
1. 작업환경 구성
2. 데이터셋 구성
- train_x의 이미지 정규화
- 로드한 학습 데이터 시각화
- 미니배치 데이터셋 구성
3. 생성자 모델 구현
- 생성자 모델 구현 함수 작성
- 랜덤 이미지 생성
4. 판별자 모델 구현
- 판별자 모델 구현 함수 작성
- 생성한 랜덤 이미지를 판별자 모델이 판별한 결과값 확인
5. 손실함수와 최적화 함수 구현
- 생성자와 판별자의 손실함수(loss) 구현
- 판별자의 출력값을 가지고 실제/생성(real/fake) 이미지 판별 정확도(accuracy)를 계산하는 함수 구현
- 생성자와 판별자를 최적화하는 optimizer를 정의
6. 훈련과정 상세 기능 구현
- 1개 미니배치의 훈련 과정을 처리하는 train_step() 함수 구현
- 16개의 고정된 seed를 입력으로 하여 훈련 과정 동안 생성한 이미지를 시각화하는 generate_and_save_images() 함수 구현
- 훈련 epoch마다 생성자/판별자의 loss 및 판별자의 실제/생성(real/fake) 이미지 판별 accuracy 히스토리(history)를 그래프로 시각화하는 draw_train_history() 함수 구현
- training_checkpoints 디렉토리에 몇 epoch마다 모델을 저장하는 checkpoint 모듈 설정
7. 학습 과정 진행하기
- epoch 설정 후 모델 학습 진행
- 학습 과정에서 생성된 샘플 이미지로 만든 gif 파일을 통해 학습 진행 과정 시각화
8. (optional) GAN 훈련 과정 개선
- 생성된 샘플 이미지, 학습 과정 그래프 등을 통해 이전 훈련 과정의 문제점을 분석
- Epochs 조정하여 모델 개선
구현한 프로젝트
PROJECT : CIRAR-10
회고
EPOCH = 1000
batch_size = 256
tf.keras.optimizers.Adam(1e-4) 의 모델으로 성능 개선
📆 2022-02-15