인공지능/Deep Learning

[Deep Learning] ANN TensorFlow 분류 문제 모델링

건휘맨 2024. 4. 16. 17:35
import tensorflow as tf
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense

# 레이어를 담을 수 있는 비어있는 틀을 만든다
>>> model = Sequential()

# 비어있는 틀에 히든 레이어 추가
# 노드 갯수 입력, 액티베이션 함수 입력, 들어갈 데이터의 갯수 입력(컬럼) 입력
>>> model.add(Dense(units=8, activation='relu', input_shape=(11,)))

# 두번째 히든 레이어 추가 
>>> model.add(Dense(6, 'relu'))

# 결과값이 0 과 1 사이 값으로 나오게한다. sigmoid 함수 사용
>>> model.add(Dense(1, 'sigmoid'))

# 실행한 작업 요약
>>> model.summary()

 

 

모델링이 끝나면 컴파일 (Complie) 을 해야 한다.1. 옵티마이저 (optimizer) 셋팅2. 로스 펑션 (loss function 오차함수, 손실함수) 셋팅3. 검증 방법 셋팅

# 2개로 분류하는 문제의 loss 는 'binary_crossentropy' 로 설정한다.

>>> model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

 

컴파일이 끝나면 전처리한 데이터로 학습시키고 평가하여 정확도를 확인

# 데이터 8천개를 10개씩 나눠서 20번을 반복
# batch_size => 한 번에 몇 개씩 계산 할지 정한다.
# epochs => 몇 번 돌릴지 정한다.
>>> model.fit(X_train, y_train, batch_size= 10, epochs= 20)

# 학습이 끝나면 평가한다.
# 알아서 채점 해준다. 친절한 친구 텐서플로우
model.evaluate(X_test, y_test)