파이썬/딥러닝
파이썬 딥러닝 코드 작성법 - Sequential / 함수형
큰고양2
2023. 10. 22. 13:15
Sequential
sequential 작성방법은 복잡하지 않은 코드를 작성할 때 유용하다
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(input_dim,)))
model.add(Dense(10, activation='softmax'))
다음 코드는 sequential 형태로 작성한 간단한 코드로
input을 받는 dense 64의 히든레이어를 하나 만들고 이후 아웃풋 레이어로 출력을 한다
model2 = Sequential(Dense(64, activation='relu', input_shape=(input_dim,)),
Dense(10, activation='softmax')
)
동일한 모델을 이런 방법으로 적을 수도 있다
model.add 를 사용해서 적는 것이나 직접 괄호 안에 적는 것이나 동일하기 때문에
더 편한 방법을 사용하면 된다
함수형
함수형은 조금 더 복잡한 모델을 만들 수 있다
sequential의 경우 층을 쌓아 올린대로 순차적으로 진행하지만 함수형은 직접 해당 레이어의 값을 적어주기 때문에
더 복잡한 코드 작성이 가능하다
위의 모델을 똑같이 함수형으로 적어보면
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model
x = Input(shape=(input_dim,))
h = Dense(64, activation='relu')(x)
y = Dense(10, activation='softmax')(h)
model = Model(inputs=x, outputs=y)
이 된다
여기서 알 수 있는 점은 함수형은 첫번째 레이어에 input을 바로 넣는 것이 아니라
Input() 을 통해 인풋을 따로 정의한다는 것이다
그리고 맨 마지막의 ()에 값을 가져올 레이어를 직접 지정한다
이후 모델 선언 역시 Model을 사용하여 input과 output을 직접 지정하는 형태다
3가지 방법 중에서 편한 방법을 고르면 된다