01. 문제 정의
AND Gate는 하나의 Node만으로도 해결할 수 있는 문제였지만, XOR Function이 나오면서 여러개의 노드를 추가시켜야 했다.
02. 데이터셋 설정
#1. Numpy 가져오기
import numpy as np
#데이터 셋 설정
X = np.array([[0,0], [0,1], [1,0], [1,1]])
y = np.array([[0], [1], [1], [0]])
print(X)
print(y)
AND Function과 똑같지만 여기서는 출력값이 다르게 됩니다.
03. 모델 설정
# 케라스 패키지 불러오기
import Keras
from keras.model import Sequential
from keras.layers.core import Dense, Activation
print(keras.__version__)
#MLP 모델 설정
model = Sequential()
model.add(Dense(10, input_dim=2, activatino='relu')
model.add(Dense(1, activation='sigmoid')
print(model.summary())
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
여기서는 네트워크층에서 몇 개의 input과 output을 설정하느냐를 결정하기 때문에 Dense를 import했고, 어떤 함수를 쓰느냐에 따라 Activation을 import했습니다.
이진분류로 0과 1을 출력하기 때문에 binary_corssentropy를 loss함수로 두고, 최적화는 adam으로 했습니다.
# 6. 학습시키기
batch_size = 1
epochs = 1000
model.fit(X, y, batch_size=batch_size, epochs=epchos, shuffle=True, verbose=1)
# 7. 모델 테스트하기
predict = model.predict(np.array([[1,1],]))
print(predict)
'프로그래밍 일반 > 딥러닝' 카테고리의 다른 글
딥러닝 교재 (0) | 2019.11.25 |
---|---|
[딥러닝] 케라스실습 03. 당뇨병 (0) | 2019.11.25 |
[딥러닝] 케라스 실습 01. AND Function 문제 (0) | 2019.11.25 |
[딥러닝] 케라스의 기초 개념 (0) | 2019.11.25 |
[딥러닝] 3. 딥러닝시 주의할 점 (0) | 2019.11.25 |