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 크기의 텐서를 입력 데이터로 사용했습니다.