sequential vs functional api

Sequential API¿Í ÇÔ¼öÇü API »ç¿ë ¿¹¸¦ ÄÚµå·Î º¸ÀÚ

Sequential API

# 1. µ¥ÀÌÅÍ Àüó¸®
from keras.models import Sequential
from keras.layers import Dense
import numpy as np

x_train = np.linspace(1, 10, 10)
y_train = x_train
x_val = np.array([100,200,300,400,500])
y_val = x_val
x_test = np.linspace(11, 20, 10)
y_test = x_test

# 2. ¸ðµ¨ ±¸¼º
model = Sequential()
model.add(Dense(10, input_dim=1, activation='linear'))
model.add(Dense(10, activation='linear'))
model.add(Dense(8, activation='linear'))
model.add(Dense(1))
 
# 3. ¸ðµ¨ ÈÆ·Ã
model.compile(optimizer='adam', loss='mse', metrics=['mae'])
model.fit(x_train, y_train, epochs=100, verbose=0)
 
# 4. ¸ðµ¨ Æò°¡ ¿¹Ãø
loss_met = model.evaluate(x_test, y_test, batch_size=1)
print(loss_met)

predict = model.predict(x_test)
print('y_test', y_test, ' predict: \n', predict)


ÇÔ¼öÇü API

# 1. µ¥ÀÌÅÍ Àüó¸®
import tensorflow as tf
import numpy as np

x = np.linspace(1, 10, 10)
y = x

# 2. ¸ðµ¨ ±¸¼º
inputs = tf.keras.layers.Input((1, ))

hidden1 = tf.keras.layers.Dense(10, activation='linear')(inputs)
hidden2 = tf.keras.layers.Dense(10, activation='linear')(hidden1)
hidden3 = tf.keras.layers.Dense(8, activation='linear')(hidden2)
outputs = tf.keras.layers.Dense(1, activation='linear')(hidden3)
model = tf.keras.Model(inputs, outputs)

# 3. ¸ðµ¨ ÈÆ·Ã
model.compile(optimizer='adam', loss='mse', metrics=['mae'])
model.fit(x, y, epochs=100, verbose=0)

# 4. ¸ðµ¨ Æò°¡ ¿¹Ãø
loss_met = model.evaluate(x, y, batch_size=1)
print(loss_met)
 
predict = model.predict(x)
print('y', y, ' predict: \n', predict)

Âü°í)
https://studymachinelearning.com/keras-modeling-sequential-vs-functional-api/