본문 바로가기

Lecture AI/7장.Sequential 모델을 넘어서: 케라스의 함수형 API

2. 함수형 API 소개

반응형

함수형 API에서는 직접 텐서들의 입출력을 다룹니다. 

간단한 내용으로 함수형 API의 절차를 보겠습니다.

 

from keras.models import Sequential, Model
from keras import layers
from keras import Input

 

input_tensor = Input(shape=(64,))
x = layers.Dense(32, activation='relu')(input_tensor)
x = layers.Dense(32, activation='relu')(x)
output_tensor = layers.Dense(10, activation='softmax')(x)
model = Model(input_tensor, output_tensor)
model.summary()

 

Model: "model"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         [(None, 64)]              0         
_________________________________________________________________
dense (Dense)                (None, 32)                2080      
_________________________________________________________________
dense_1 (Dense)              (None, 32)                1056      
_________________________________________________________________
dense_2 (Dense)              (None, 10)                330       
=================================================================
Total params: 3,466
Trainable params: 3,466
Non-trainable params: 0
_________________________________________________________________

 

model.compile(optimizer='rmsprop', loss='categorical_crossentropy')
import numpy as np
x_train= np.random.random((1000, 64))
y_train= np.random.random((1000, 10))

model.fit(x_train, y_train, epochs=10, batch_size=128)
source = model.evaluate(x_train, y_train)

 

Epoch 1/10
8/8 [==============================] - 12s 1ms/step - loss: 12.0643
Epoch 2/10
8/8 [==============================] - 0s 993us/step - loss: 12.4466
Epoch 3/10
8/8 [==============================] - 0s 1ms/step - loss: 13.5754
Epoch 4/10
8/8 [==============================] - 0s 996us/step - loss: 15.4514
Epoch 5/10
8/8 [==============================] - 0s 1ms/step - loss: 17.7633
Epoch 6/10
8/8 [==============================] - 0s 2ms/step - loss: 20.5619
Epoch 7/10
8/8 [==============================] - 0s 855us/step - loss: 24.2587
Epoch 8/10
8/8 [==============================] - 0s 1ms/step - loss: 28.1953
Epoch 9/10
8/8 [==============================] - 0s 1ms/step - loss: 33.2819
Epoch 10/10
8/8 [==============================] - 0s 997us/step - loss: 37.9749
32/32 [==============================] - 0s 579us/step - loss: 42.0925

 

print(source)

 

42.09252166748047
반응형