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

파이썬으로 TensorFlow 순차 모델(Sequential Model) 구축하기: Dense 레이어 완벽 가이드

TensorFlow는 Google에서 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 알고리즘 구현, 딥러닝 애플리케이션 개발 등 다양한 용도로 활용되며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 쓰이고 있습니다.

TensorFlow 설치 방법

Windows 환경에서는 아래 명령어 한 줄로 'tensorflow' 패키지를 간단히 설치할 수 있습니다.

pip install tensorflow

Keras API란 무엇인가?

레이어(Layers) API는 Keras API의 일부입니다. Keras는 그리스어로 '뿔(horn)'을 의미하며, ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System)라는 연구 프로젝트의 일환으로 개발되었습니다.

Keras는 Python으로 작성된 딥러닝 API로, 머신러닝 문제를 효율적으로 해결할 수 있도록 돕는 생산성 높은 인터페이스를 제공하는 고수준(High-level) API입니다. TensorFlow 프레임워크 위에서 동작하며, 빠른 실험과 반복을 지원하도록 설계되었습니다.

Keras가 주목받는 이유는 다음과 같습니다.

  • 머신러닝 솔루션을 개발하고 캡슐화하는 데 필수적인 추상화와 빌딩 블록을 제공합니다.
  • 뛰어난 확장성을 갖추고 있으며 크로스 플랫폼을 지원합니다.
  • TPU나 GPU 클러스터 환경에서도 실행할 수 있습니다.
  • Keras 모델은 웹 브라우저나 모바일 기기에서 실행 가능한 형태로 내보내기(export)할 수도 있습니다.

Keras 불러오기

Keras는 이미 TensorFlow 패키지에 포함되어 있으므로, 별도 설치 없이 아래 코드로 바로 사용할 수 있습니다.

import tensorflow
from tensorflow import keras

본 예제는 Google Colaboratory 환경에서 실행됩니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있게 해주며, 별도의 설정이 필요 없고 GPU를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.

Dense 레이어 생성 코드 예제

다음은 Dense 레이어를 생성하는 코드입니다.

예제 코드

print("Three dense layers are being created")
layer1 = layers.Dense(2, activation="relu", name="layer_1")
layer2 = layers.Dense(3, activation="relu", name="layer_2")
layer3 = layers.Dense(4, name="layer_3")

print("The model is being called on test data")

x = tf.ones((4, 4))
y = layer3(layer2(layer1(x)))

코드 출처: https://www.tensorflow.org/guide/keras/sequential_model

실행 결과

Three dense layers are being created
The model is being called on test data
The layers are
[<tensorflow.python.keras.layers.core.Dense object at 0x7fe921aaf7b8>, <tensorflow.python.keras.layers.core.Dense object at 0x7fe921a6d898>, <tensorflow.python.keras.layers.core.Dense object at 0x7fe921a6dc18>]

코드 상세 설명

  • Python과 Keras를 사용해 순차 모델(Sequential Model)을 만들고 레이어를 추가하는 또 다른 방법입니다.
  • 각 레이어는 'layers.Dense' 메서드를 호출하여 명시적으로 생성됩니다. 첫 번째와 두 번째 레이어에는 'relu' 활성화 함수가 적용되었고, 세 번째 레이어는 활성화 함수 없이 생성되었습니다.
  • 레이어 객체들의 리스트를 생성자에 전달함으로써 순차 모델이 만들어집니다.
  • 'layers' 속성을 사용하면 모델에 포함된 레이어들에 대한 세부 정보를 확인할 수 있습니다.
  • 레이어 추가가 완료되면 테스트 데이터를 모델에 입력하여 결과가 콘솔에 출력됩니다. 여기서는 tf.ones((4, 4))로 생성한 4x4 크기의 텐서를 입력 데이터로 사용했습니다.