Sequential API
지금까지 진행했던 api
clear_session()
model = Sequential([Input(shape = (nfeatures, )),
Dense(18, activation = 'relu' ),
Dense(4, activation='relu') ,
Dense(1) ])
model.summary()
Functional API
새로운 api
clear_session()
il = Input(shape=(nfeatures, ))
hl1 = Dense(18, activation='relu')(il)
hl2 = Dense(4, activation='relu')(hl1)
ol = Dense(1)(hl2)
model = Model(inputs = il, outputs = ol)
model.summary()
다중입력
1. 입력 나누기
# 입력1
in_col = ['zn', 'indus', 'chas', 'rm', 'age', 'dis', 'rad', 'tax' ]
x_train1 = x_train[in_col]
x_val1 = x_val[in_col]
# 입력2 : 나머지
x_train2 = x_train.drop(in_col, axis = 1)
x_val2 = x_val.drop(in_col, axis = 1)
2. 모델 선언
nfeatures1 = x_train1.shape[1]
nfeatures2 = x_train2.shape[1]
# 입력
Input_1 = Input(shape=(nfeatures1,), name='input_1')
Input_2 = Input(shape=(nfeatures2,), name='input_2')
# 첫 번째 입력을 위한 레이어
d1 = Dense(20, activation='relu')(Input_1)
# 두 번째 입력을 위한 레이어
d2 = Dense(10, activation='relu')(Input_2)
# 두 히든레이어 결합
concat_d12 = concatenate([d1, d2])
# 추가 히든레이어
d3 = Dense(8, activation='relu')(concat_d12)
# 출력 레이어
output = Dense(1)(d3)
# 모델 선언
model2 = Model(inputs = [Input_1, Input_2], outputs = output)
model2.summary()
3. 학습 : 리스트로 받기
model2.compile(optimizer=Adam(learning_rate = 0.01), loss = 'mse')
hist2 = model2.fit([x_train1, x_train2], y_train, epochs=50, validation_split=.2).history
'KT AIVLE School > 딥러닝' 카테고리의 다른 글
시계열 모델링 (0) | 2024.10.15 |
---|---|
모델 저장하기 (0) | 2024.10.14 |
적절한 복잡도 찾기 (2) | 2024.10.14 |
분류모델링 (1) | 2024.10.11 |
회귀모델링 (1) | 2024.10.11 |