18. 모델 시각화하기

plot_model()을 이용하면 Sequential()으로 구성한 신경망 모델을 시각화할 수 있습니다.

에러가 발생하는 경우 페이지 아래 내용을 참고하세요.


예제

import tensorflow as tf
from tensorflow.keras.utils import plot_model

# 1. MNIST 데이터셋 임포트
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# 2. 데이터 전처리
x_train, x_test = x_train/255.0, x_test/255.0

# 3. 모델 구성
model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(512, activation=tf.nn.relu),
    tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])

plot_model(model, to_file='model.png')
plot_model(model, to_file='model_shapes.png', show_shapes=True)

plot_model()에 모델 (model)과 파일명을 지정해줌으로써 시각화된 결과를 이미지 파일로 저장할 수 있습니다.

show_shapes을 True로 설정하면 층의 형태를 함께 시각화합니다.

결과는 아래와 같습니다.


_images/model.png

그림. 모델 시각화하기 (without shapes).


_images/model_shapes.png

그림. 모델 시각화하기 (with shapes).



에러가 발생하는 경우

pydot

Traceback (most recent call last):
  File "/Users/test.py", line 35, in <module>
    plot_model(model, to_file='model.png')
  File "/Users/anaconda3/lib/python3.5/site-packages/keras/utils/vis_utils.py", line 132, in plot_model
    dot = model_to_dot(model, show_shapes, show_layer_names, rankdir)
  File "/Users/anaconda3/lib/python3.5/site-packages/keras/utils/vis_utils.py", line 55, in model_to_dot
    _check_pydot()
  File "/Users/anaconda3/lib/python3.5/site-packages/keras/utils/vis_utils.py", line 20, in _check_pydot
    'Failed to import `pydot`. '
ImportError: Failed to import `pydot`. Please install `pydot`. For example with `pip install pydot`.

Process finished with exit code 1

위와 같은 에러가 발생하는 경우


pip install pydot

‘pip install pydot’을 이용해서 ‘pydot’을 설치하세요.


GraphViz

Traceback (most recent call last):
  File "/Users/test.py", line 35, in <module>
    plot_model(model, to_file='model.png')
  File "/Users/anaconda3/lib/python3.5/site-packages/keras/utils/vis_utils.py", line 132, in plot_model
    dot = model_to_dot(model, show_shapes, show_layer_names, rankdir)
  File "/Users/anaconda3/lib/python3.5/site-packages/keras/utils/vis_utils.py", line 55, in model_to_dot
    _check_pydot()
  File "/Users/anaconda3/lib/python3.5/site-packages/keras/utils/vis_utils.py", line 29, in _check_pydot
    '`pydot` failed to call GraphViz.'
OSError: `pydot` failed to call GraphViz.Please install GraphViz (https://www.graphviz.org/) and ensure that its executables are in the $PATH.

위와 같은 에러가 발생하는 경우


brew install graphviz

‘brew install graphviz’을 이용해서 ‘GraphViz’을 설치하세요.


import plot_model

from keras.utils import plot_model
from tensorflow.keras.utils import plot_model

plot_model을 임포트할 때, tenforflow와 keras를 혼용하지 않고, 아래와 같이 사용하세요.



이전글/다음글