본문 바로가기
  • 콩's 코딩노트

TensorFlow25

Callback 에서 성능이 가장 좋은 모델을 자동 저장하기, 로그 저장하기 완성된 모델링을 학습할 때 사용하는 Fit 함수의 파라미터 중 callbacks에는 매 번 학습이 끝날 때 (epoch) 마다 어떤 기능을 할 것인지 정하는 파라미터이다. 이 중 성능이 가장 좋은 모델을 자동으로 저장하는 방법과 로그를 저장하는 방법에 대해 알아보자. 먼저 사용하는 라이브러리는 다음과 같다. from tensorflow.keras.callbacks import ModelCheckpoint 성능이 가장 좋은 인공지능을 저장하는 콜백 코드는 다음과 같다. ModelCheckpoint('인공지능 저장할 디렉토리 위치', monitor='val_accuracy', save_best_only = True, verbose= 1) 이를 변수에 저장해 사용하면 된다. 다음은 로그를 저장하는 방법이다. .. 2022. 6. 16.
Transfer Learning 과 Fine Tunning Transfer Learning 이란? Transfer Learning 이란 기존의 잘 만들어진 모델을 활용하는 방법으로 다양한 상황과 용도에 맞게 학습되어 성능이 검증된 인공지능 모델들을 가져와 활용하는 방법이다. 위 이미지를 예시로 보면 ImageNet 이라는 1000개의 클래스와 1400만개의 데이터를 가지고 있는 이미지 데이터 셋을 통해 학습시켜 성능이 검증된 모델을 가져와 활용하는 것을 볼 수 있다. 이 때 가장 중요한 개념은 다음과 같다. Base Model과 Head Model을 구분하는 일이다. 이미지의 특징을 잡아내는 학습을 거친 Base Model은 다시 학습되면 안되므로 Head Model과 구분지어 프리징해야한다. 먼저 Base Model을 프리징하는 방법은 다음과 같다. # 우리가.. 2022. 6. 16.
TensorFlow - 파일을 training 과 test 디렉토리로 나눠서 저장하기 이미지를 분류하기 위한 딥러닝을 학습할 때 그 무엇보다 중요한 부분이 바로 데이터를 준비하는 과정이다. 어떤 데이터로 학습시키는가가 성능에 큰 영향을 줄 수 있으므로 꼭 잘 알고 넘어가야한다. 특히 모든 상황에서 트레이닝 데이터와 테스트 데이터가 나뉘어 제공되진 않으므로 코랩이나 리눅스 상황에서 파일을 분리할 수 있어야한다. 그 방법은 다음과 같다. # 1. 디렉토리 만들기 os.mkdir('/tmp/cats-v-dogs') os.mkdir('/tmp/cats-v-dogs/training') os.mkdir('/tmp/cats-v-dogs/testing') os.mkdir('/tmp/cats-v-dogs/training/cats') os.mkdir('/tmp/cats-v-dogs/training/dogs.. 2022. 6. 15.
TensorFlow - Image Data Generator 를 이용해서 데이터 증강하기 (로컬 파일 / 변수에 저장된 파일) 1. 이미지 파일을 가지고 있는 경우 (파일 디렉토리를 알 수 있는 경우) CNN의 구성이 다 끝난 후 TRAINING_DIR = '/tmp/cats-v-dogs/training' train_datagen = ImageDataGenerator(rescale= 1/255.0, rotation_range=30, width_shift_range= 0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip= True, vertical_flip=True) train_generator = train_datagen.flow_from_directory(TRAINING_DIR, target_size= (150,150), class_mode=.. 2022. 6. 15.
jpg, png와 같은 이미지 파일을, 학습용 데이터로 만드는 방법 png와 jpg 같은 확장자를 가진 이미지 파일은 CNN이나 ANN에 넣어 학습용 데이터로 사용하기 위해서는 무조건 Numpy array로 변환하여야 한다. 이 때 TensorFlow에서 너무너무 친절하게도 이미지 파일을 넘파이 어레이로 변환하는 라이브러리를 제공해준다. 그 라이브러리를 사용하는 방법은 다음과 같다. from tensorflow.keras.preprocessing.image import ImageDataGenerator 위 라이브러리가 이미지 파일을 넘파이 어레이로 변환하는 라이브러리이다. # 1 train_datagen = ImageDataGenerator(rescale= 1/255.0) 1. 먼저 라이브러리를 사용하기위해 변수에 저장해준다. 이 때 넘파이 어레이의 색상 정보 범위 (0.. 2022. 6. 15.
TensorFlow - 이미지가 주어졌을 때 Convolution한 결과로 나오는 feature map의 사이즈를 구하는 공식 (이미지 사이즈 + Kernal 파라미터 + Padding * 2) / strides + 1 로 행열의 사이즈(feature map)의 사이즈를 구할 수 있다. 2022. 6. 14.