TensorFlow는 Google이 제공하는 머신러닝 프레임워크입니다. 오픈소스 프레임워크로, Python과 함께 사용하여 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있으며 연구와 실제 프로덕션 환경 모두에서 활용됩니다. 복잡한 수학적 연산을 빠르게 수행할 수 있도록 돕는 다양한 최적화 기법을 갖추고 있습니다. 텐서(Tensor)는 TensorFlow에서 사용되는 데이터 구조로, 흐름 다이어그램의 엣지(edge)를 연결하는 역할을 합니다. 이 흐름 다이어그램은 '데이터 플로우 그래프(Data flow graph)'라고 불리며, 텐서는 본질적으로 다차원 배열 또는 리스트에 해당합니다.
Keras는 ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System) 프로젝트의 연구 과정에서 개발된 딥러닝 API로, Python으로 작성되었습니다. 높은 수준의 추상화와 생산적인 인터페이스를 제공하여 머신러닝 문제 해결을 돕는 고수준(high-level) API이며, TensorFlow 프레임워크 위에서 동작합니다. 빠른 실험을 지원하도록 설계되었으며, 머신러닝 솔루션을 개발하고 캡슐화하는 데 필수적인 추상화 계층과 빌딩 블록을 제공합니다.
Keras는 뛰어난 확장성과 크로스 플랫폼 지원 능력을 갖추고 있습니다. 즉, TPU나 GPU 클러스터에서 실행할 수 있으며, Keras 모델을 웹 브라우저나 모바일 기기에서 구동할 수 있도록 내보내는 것도 가능합니다.
Keras는 이미 TensorFlow 패키지에 포함되어 있으며, 아래 코드 한 줄로 불러올 수 있습니다.
import tensorflow from tensorflow import keras
Keras의 함수형 API(Functional API)는 순차형(Sequential) API로 만든 모델보다 훨씬 유연한 모델을 생성할 수 있게 해줍니다. 함수형 API는 비선형 토폴로지를 가진 모델을 다룰 수 있고, 레이어를 공유하거나 여러 개의 입력과 출력을 처리할 수 있습니다. 딥러닝 모델은 일반적으로 여러 레이어로 구성된 방향성 비순환 그래프(DAG, Directed Acyclic Graph)이며, 함수형 API를 활용하면 이러한 레이어의 그래프를 손쉽게 구축할 수 있습니다.
아래 코드는 Google Colaboratory에서 실행했습니다. Google Colab(Colaboratory)은 브라우저에서 Python 코드를 실행할 수 있게 해주며, 별도의 설정이 필요 없고 GPU에 무료로 접근할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다. 다음은 코드 예시입니다.
예제
print("생성한 모델을 그래프로 그립니다")
keras.utils.plot_model(model, "my_model.png")
print("입력 및 출력 데이터의 차원(shape)을 함께 표시합니다")
keras.utils.plot_model(model, "my_first_model.png", show_shapes=True)코드 출처 — https://www.tensorflow.org/guide/keras/functional
출력 결과

설명
레이어의 그래프는 딥러닝 모델에 대한 개념적 이미지로, 함수형 API를 사용해 생성할 수 있습니다.