[Tensorflow]

신동혁·2023년 4월 28일

모델 생성 방법

  1. Sequential 모델
  2. Functional 모델
  3. Subclassing 모델

Sequential 모델

Sequential 모델은 순차 모델이라고 표현되기도 한다. Sequential 모델이라는 모델을 생성하고 여기서 원하는 layer를 순차적으로 쌓아가는 방식이다.

  • 먼저 필요한 tensorflow 라이브러리를 import한다.
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
  • Sequential 모델 생성 및 layer 쌓기
# Define Sequential model with 3 layers
model = keras.Sequential(
    [
        layers.Dense(2, activation="relu"),
        layers.Dense(3, activation="relu"),
        layers.Dense(4),
    ]
)

위와 같이 layer를 쌓을 수도 있고 아래와 같이 layer를 쌓을 수도 있다.

# Define Sequential model with 3 layers
model = keras.Sequential()
model.add(layers.Dense(2, activation="relu"))
model.add(layers.Dense(3, activation="relu"))
model.add(layers.Dense(4))
  • 모델과 레이어에 이름 부여하기
model = keras.Sequential(name="my_sequential")
model.add(layers.Dense(2, activation="relu", name="layer1"))
model.add(layers.Dense(3, activation="relu", name="layer2"))
model.add(layers.Dense(4, name="layer3"))
  • input(입력 형상)을 넣어줘 빌드하기
model = keras.Sequential(
    [
        layers.Dense(2, activation="relu"),
        layers.Dense(3, activation="relu"),
        layers.Dense(4),
    ]
)

model.summary()

위와 같은 경우 input이 없기 때문에 model이 빌드 되지 않는다. 그래서 해당 모델의 내용을 확인하기 위해 model.summary()를 했을 때 에러가 생긴다.

model = keras.Sequential()
model.add(keras.Input(shape=(4,)))
model.add(layers.Dense(2, activation="relu"))

model.summary()

그래서 위와 같이 input을 넣어주거나 아래와 같이 input을 넣어주면 model.summary()를 통해 빌드된 모델의 내용을 확인할 수 있다.

model = keras.Sequential()
model.add(layers.Dense(2, activation="relu", input_shape=(4,)))

model.summary()

Functional 모델

  • 필요한 라이브러리 import
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
  • input layer와 output layer를 만든 후 model에 넣어주기
inputs = keras.Input(shape=(784,))

x = layers.Dense(64, activation="relu")(x)
outputs = layers.Dense(10)(x)

model = keras.Model(inputs=inputs, outputs=outputs, name="mnist_model")

Subclassing 모델

0개의 댓글