본문 바로가기
프로그램/SKT FLY AI

SKT FLY AI : 10일차

by hsloth 2023. 7. 10.

Keras에서 모델 구성 방법


  • Sequential()에 레이어를 추가하는 방법
  • 함수형 API를 사용하는 방법
  • Model 클래스를 서브클래싱하는 방법

1. Sequential()

객체를 만들어서 레이어를 추가하는 방법으로 레이어를 구성

  • add() 함수
  • 모델의 구성을 이미지로 표시 : plot_model(model)
model = keras.Sequential([
    layers.Conv2D(64, (3, 3), activation='relu',
        input_shape=(28,28,1)),
    layers.Conv2d(32, (3, 3), activation='relu'),
    layers.MaxPooling2D(pool_size=(2, 2), strides=(1,1)),
    layers.Flatten(),
    layers.Dense(32, activation='relu'),
    layers.Dense(10, activation='softmax')])

model.summary()

2. 함수형 API 사용

  • Keras의 함수형 API(functional API)는 다중 출력 모델, 방향성 비순환 그래프(directed acyclic graph), 공유 계층(shared layer)를 가지는 모델 등과 같은 복잡한 모델을 정의하는 방법
  • 함수처럼 신경망 층을 다루는 API
input_ = keras.layers.Input(shape=X_train.shape[1:])
hidden1 = keras.layers.Dense(30, activation="relu")(input_)
hidden2 = keras.layers.Dense(30, activation="relu")(hidden1)
concat = keras.layers.concatenate([input_, hidden2])
output = keras.layers.Dense(1)(concat)
model = keras.models.Model(inputs=[input_], outputs=[output])



### 여러개 입력, 출력층

input_A = keras.layers.Input(shape=[5], name=“wide_input")
input_B = keras.layers.Input(shape=[6], name=“deep_input")
hidden1 = keras.layers.Dense(30, activation=“relu")(input_B)
hidden2 = keras.layers.Dense(30, activation=“relu")(hidden1)
concat = keras.layers.concatenate([input_A, hidden2])
output = keras.layers.Dense(1, name=“main_output")(concat)
aux_output = keras.layers.Dense(1, name=“aux_output")(hidden2)
model = keras.models.Model(inputs=[input_A, input_B],
 outputs=[output, aux_output])

'프로그램 > SKT FLY AI' 카테고리의 다른 글

SKT FLY AI : 12일차 - Github Actions  (0) 2023.07.11
SKT FLY AI : 11일차  (0) 2023.07.11
SKT FLY AI : 9일차 - RNN  (0) 2023.07.07
SKT FLY AI : 8일차 - CNN(2)  (0) 2023.07.05
SKT FLY AI : 7일차 - CNN  (0) 2023.07.04