Deep learning_ 구현방식

sujineeda·2021년 3월 26일
0

🤯AI

목록 보기
2/7

심층 신경망을 구현하는 방식에는 크게 세가지가 있다; Sequential, Functional, Subclassing

  • Sequential API
    • Input -> Hidden -> Output 순차적으로 가며 첫번째 hidden layer는 무조건 input layer의 데이터를 받는다
    • 간결한 모델 구현시 사용
    from tensorflow import keras
    model = keras.models.Sequential([
    	keras.layers.Dense(unit = n, activation = 'relu', input_shape = (5,)),
        keras.layers.Dense(1)
    ])
    model.compile(loss, optimizer)
    history = model.fit(X, y, epochs)
  • Functional API
    • 무조건 순차적으로 진행되어야 하는 시퀀셜 API의 한계 극복
    • 경로를 다양하게 구현하여 복잡한 모델 생성 가능
      출처: 핸즈온 머신러닝 2판
#basic model
X = keras.layers.Input(shpae = (5,))
H = keras.layers.Dense(30, activation = 'relu')(X)
Y = keras.layers.Dense(1, activation = 'relu')(H)
model = keras.Model(inputs = X, outputs = Y)

#concat model
X = keras.layers.Input(shpae = (5,))
H = keras.layers.Dense(30, activation = 'relu')(X)
H2 = keras layers.Dense(30, activation = 'relu')(H)
concat = keras.layersConcatenate()([X, H2])
Y = keras.layers.Dense(1, activation = 'relu')(concat)
model = keras.Model(inputs = X, outputs = Y)
  • Subclassing API (추후 공부)
    • 동적 모델 구현 가능
    • 동적 모델이란, 모델 안에 반복문/ 조건문 / 등 동적인 구조를 담을 수 있음
    • Sequential , Functional API 는
      • 사용할 층과 연결 방식을 먼저 정의 후, 모델에 데이터를 학습시켜 예측
      • 모델을 저장하거나 복사, 공유가 쉽고 모델의 구조를 출력하거나 분석하기 좋음
      • 디버깅 쉬움
profile
AD+AI Ph.D course

0개의 댓글