Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

TensorFlow를 활용해 Python으로 순차(Sequential) 모델 만드는 방법

TensorFlow로 순차 모델 구축하기

순차 모델은 'Sequential' API를 사용해 손쉽게 만들 수 있습니다. 이 API는 'layers.experimental.preprocessing.Rescaling' 메서드를 활용하며, 모델을 생성하는 과정에서 나머지 레이어들도 함께 지정할 수 있습니다.

관련 글: TensorFlow란 무엇이며, Keras는 어떻게 TensorFlow와 함께 신경망을 구성할까요?

여기서는 Keras Sequential API를 사용합니다. 이 API는 레이어가 순서대로 쌓이는 단순한 스택 구조의 모델을 만들 때 매우 유용하며, 각 레이어는 정확히 하나의 입력 텐서와 하나의 출력 텐서를 가집니다.

아래 코드는 Google Colaboratory에서 실행됩니다. Google Colab(또는 Colaboratory)은 브라우저에서 바로 Python 코드를 실행할 수 있도록 지원하며, 별도의 설정 없이 GPU(그래픽 처리 장치)에 무료로 접근할 수 있다는 큰 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.

print("Sequential model is being created")
num_classes = 5
model = Sequential([
    layers.experimental.preprocessing.Rescaling(1./255, input_shape=(img_height, img_width, 3)),
    layers.Conv2D(16, 3, padding='same', activation='relu'),
    layers.MaxPooling2D(),
    layers.Conv2D(32, 3, padding='same', activation='relu'),
    layers.MaxPooling2D(),
    layers.Conv2D(64, 3, padding='same', activation='relu'),
    layers.MaxPooling2D(),
    layers.Flatten(),
    layers.Dense(128, activation='relu'),
    layers.Dense(num_classes)
])

코드 출처: https://www.tensorflow.org/tutorials/images/classification

실행 결과

Sequential model is being created

코드 설명

  • 모델은 세 개의 합성곱(convolution) 블록으로 구성되어 있으며, 각 블록에는 최대 풀링(Max Pooling) 레이어가 포함되어 있습니다.
  • 합성곱 블록 위에는 128개의 유닛을 가진 완전 연결(Dense) 레이어가 배치되어 있습니다.
  • 해당 레이어는 relu 활성화 함수를 통해 활성화됩니다.
  • 이 모델은 높은 정확도에 맞춰 튜닝된 모델은 아닙니다.
  • 결과적으로 세 개의 합성곱 블록을 갖춘 순차 모델이 성공적으로 생성됩니다.