티스토리 뷰
케라스를 이용하여 하는 mlp 기본 예제 코드이다.
기본적인 데이터는 다음과 같다.
X : [10,20,30] -> Y : [40,50]
1
2
|
X = array([[10, 20, 30], [20, 30, 40], [30, 40, 50], [40, 50, 60]])
y = array([[40, 50],[50,60],[60, 70],[70,80]])
|
cs |
100개의 뉴런을 사용하여 output을 두개 도출한다.
이때 데이터는 3개이기 때문에 input_dim = 3으로 도출되고 Dense(2)로 설정한다.
optimizer은 adam으로 설정하였고 회귀이기 때문에 loss는 mse로 설정하였다.
1
2
3
4
5
6
7
|
# define model
model = Sequential()
model.add(Dense(100, activation='relu', input_dim=3))
model.add(Dense(2))
model.compile(optimizer='adam', loss='mse')
# fit model
model.fit(X, y, epochs=2000, verbose=0)
|
cs |
데이터 [50,60,70]을 사용하여 output을 도출한다.
값은 [[80.14777 90.85103]]로 도출된다.
1
2
3
4
5
6
|
# demonstrate prediction
x_input = array([50, 60, 70])
x_input = x_input.reshape((1, 3))
yhat = model.predict(x_input, verbose=0)
print(yhat) #[[80.14777 90.85103]]
|
cs |
[전체코드]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# univariate mlp example
from numpy import array
from keras.models import Sequential
from keras.layers import Dense
# define dataset
X = array([[10, 20, 30], [20, 30, 40], [30, 40, 50], [40, 50, 60]])
y = array([[40, 50],[50,60],[60, 70],[70,80]])
print("X.shape", X.shape)
print("Y.shape", y.shape)
# define model
model = Sequential()
model.add(Dense(100, activation='relu', input_dim=3))
model.add(Dense(2))
model.compile(optimizer='adam', loss='mse')
# fit model
model.fit(X, y, epochs=2000, verbose=0)
# demonstrate prediction
x_input = array([50, 60, 70])
x_input = x_input.reshape((1, 3))
yhat = model.predict(x_input, verbose=0)
print(yhat) #[[80.14777 90.85103]]
|
cs |
'인공지능 > 딥러닝' 카테고리의 다른 글
딥러닝(Deep Learning) - CNN 기본개념 (0) | 2019.10.18 |
---|---|
[1] tensorflow - 헷갈리는것 shape 정리 (0) | 2019.09.11 |
[1] Machine learning basic (0) | 2019.09.05 |
[3] Keras Mnist CNN Regression (1) | 2019.09.05 |
[2] Keras - 기본 CNN regression 구현 (0) | 2019.09.05 |
댓글