AI Basics

머신러닝 이해와 활용 - 2nd.개와고양이(Google Colab)

AI패스파인더 2023. 7. 1. 22:43

(딥러닝, 개와 고양이)


Google Colab과 TensorFlow를 활용해 개와 고양이 이미지 분류를 학습하는 과정은 다음과 같습니다.

1.환경 설정: 먼저, 필요한 라이브러리를 설치하고 임포트해야 합니다. TensorFlow는 이미 Colab에 설치되어 있지만, 최신 버전을 사용하려면 업데이트할 수 있습니다.

(Colab, 최신버전 업그레이드)

2. 데이터 로딩과 전처리: 개와 고양이 이미지 데이터셋을 로딩해야 합니다. TensorFlow Datasets 라이브러리를 사용해 데이터를 다운로드하고 로딩할 수 있습니다.

import tensorflow_datasets as tfds
(raw_train, raw_validation, raw_test), metadata = tfds.load( 'cats_vs_dogs', split=['train[:80%]', 'train[80%:90%]', 'train[90%:]'], with_info=True, as_supervised=True,
)

이미지 데이터는 모델에 입력하기 전에 일관된 형태로 전처리해야 합니다. TensorFlow는 이를 위해 tf.data API를 제공합니다.

IMG_SIZE = 160 # All images will be resized to 160x160
def format_example(image, label):
      image = tf.cast(image, tf.float32)
      image = (image/127.5) - 1
      image = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))
      return image, label
train = raw_train.map(format_example)
validation = raw_validation.map(format_example)
test = raw_test.map(format_example)


3.모델 구축
: 이제 Convolutional Neural Network (CNN) 모델을 구성할 차례입니다. 여기서는 간단한 CNN 모델을 사용하겠습니다.

model = Sequential([
     Conv2D(16, 3, padding='same', activation='relu', input_shape=(IMG_SIZE ,IMG_SIZE ,3)), MaxPooling2D(), 
     Conv2D(32, 3, padding='same', activation='relu'), MaxPooling2D(),
     Conv2D(64, 3, padding='same', activation='relu'), MaxPooling2D(), Flatten(),
     Dense(512, activation='relu'),
     Dense(1, activation='sigmoid') ])


그리고 모델을 컴파일합니다.

model.compile(optimizer='adam',
                        loss='binary_crossentropy',
                        metrics=['accuracy'])


4. 모델 훈련: 이제 모델을 훈련시킬 준비가 끝났습니다. 여기서는 15번의 에포크로 훈련하겠습니다.

EPOCHS = 15
history = model.fit(
              train_batches,
              epochs=EPOCHS,
              validation_data=validation_batches)


5.모델 평가 및 테스트: 훈련된 모델의 성능을 확인하기 위해 검증 데이터셋으로 평가를 진행합니다.

훈련된 모델의 성능을 확인하기 위해 검증 데이터셋으로 평가를 진행합니다.

loss, accuracy = model.evaluate(validation_batches)
print("Accuracy", accuracy)


테스트 데이터셋에 대해 모델을 적용하여 실제 세계에서 어떻게 동작하는지 확인해 볼 수도 있습니다. 모델이 어떤 이미지를 잘못 분류했는지 확인하는 것은 모델을 개선하는 데 도움이 될 수 있습니다.


6. 모델 저장 및 배포
: 마지막으로, 모델을 저장하고 공유하는 것이 중요합니다. 훈련된 모델을 HDF5 파일 형식으로 저장할 수 있습니다.

model.save('my_model.h5')

그러면 이제 훈련된 모델을 다른 사람과 공유하거나 다른 프로젝트에서 사용할 수 있습니다. 또한, 이 모델을 클라우드에 배포하고 웹 애플리케이션 또는 모바일 앱에서 사용할 수도 있습니다.

이것으로 개와 고양이 이미지 분류 학습의 기본적인 단계를 모두 거쳤습니다. 머신러닝은 복잡한 분야이지만, TensorFlow와 Google Colab과 같은 도구들 덕분에 누구나 쉽게 접근하고 실험해 볼 수 있습니다.