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

Python에서 Keras를 활용해 딥러닝 모델 구조 시각화하는 방법

TensorFlow는 Google이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 다양한 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있으며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 활용됩니다. 복잡한 수학 연산을 빠르게 처리할 수 있도록 돕는 최적화 기법들을 갖추고 있습니다.

텐서(Tensor)는 TensorFlow에서 사용되는 핵심 데이터 구조로, 데이터 흐름 다이어그램의 엣지(edge)를 연결하는 역할을 합니다. 이 흐름 다이어그램은 '데이터 흐름 그래프(Data Flow Graph)'라고 불리며, 텐서는 본질적으로 다차원 배열 또는 리스트에 해당합니다.

Keras란 무엇인가?

Keras는 ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System) 프로젝트의 연구 과정에서 개발된 딥러닝 API로, Python으로 작성되었습니다. 높은 수준의 추상화와 생산적인 인터페이스를 제공하여 머신러닝 문제 해결을 돕는 고수준(high-level) API이며, TensorFlow 프레임워크 위에서 동작합니다. 빠른 실험을 지원하도록 설계되었고, 머신러닝 솔루션을 개발하고 캡슐화하는 데 필수적인 추상화 계층과 빌딩 블록을 제공합니다.

Keras는 이미 TensorFlow 패키지에 포함되어 있으며, 아래 코드 한 줄로 손쉽게 불러올 수 있습니다.

import tensorflow
from tensorflow import keras

함수형 API(Functional API)의 장점

Keras의 함수형 API는 순차형(Sequential) API로 만든 모델보다 훨씬 유연한 모델 생성을 가능하게 합니다. 비선형 토폴로지를 가진 모델을 다룰 수 있고, 레이어를 공유하거나 여러 입력과 출력을 처리하는 것도 지원합니다.

일반적으로 딥러닝 모델은 여러 레이어로 구성된 유향 비순환 그래프(DAG, Directed Acyclic Graph) 형태를 띱니다. 함수형 API를 활용하면 이러한 레이어 그래프를 직관적으로 구축할 수 있습니다.

Google Colab에서 실행하기

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

모델 플롯 예제

다음은 Keras를 사용해 모델 구조를 시각화하는 코드입니다.

print("The model is being plotted")
keras.utils.plot_model(model, "multi_model.png", show_shapes=True)

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

실행 결과

Python에서 Keras를 활용해 딥러닝 모델 구조 시각화하는 방법

코드 설명

  • 모델은 레이어 그래프(graph-of-layers) 형태로 시각화할 수 있습니다.

  • 'plot_model' 메서드를 호출하면 모델 구조가 PNG 이미지 파일로 저장되며, show_shapes=True 옵션을 지정하면 각 레이어의 입출력 텐서 shape까지 함께 표시됩니다.