[파이썬으로 딥러닝 구현하기] 5. TensorFlow 2.x - Keras (High Lever API)

PoemSilver·2023년 1월 3일
0

AI 공부

목록 보기
7/7

🔮 Keras란? 🔮

TensorFlow 2.x에서 공식적이고 유일한 High-Level API

장점

직관적인 Keras의 API를 통해 ANN, CNN, RNN 모델, 혹은 다양한 딥러닝 모델을 몇 줄의 코드만으로 쉽게 구축할 수 있다.

모듈을 조합하기만 하면 새로운 딥러닝 모델을 쉽게 만들어 학습시킬 수 있다.


📝 Keras 사용법 Overview

딥러닝에서 Model이란?

Model은 각 Layer를 포함하고 있는 인공 신경망 자체를 나타냄.

# 모델 생성
model = Sequential()

# Layer 추가
model.add(...)
model.add(...)
.
.
.

# 손실함수 지정, 옵티마이저 지정
model.compile(...)

# 학습 진행(앞 과정 반복)
model.fit(...)

Compile과 fit 메서드를 통해서 신경망의 손실함수가 최소가 될 떄까지 반복하면서 최적의 weight(가중치)와 bias를 구한다!

💻 Keras 사용법 (개발 과정)

1. 데이터 생성

전체 데이터로부터 train data validation data test data 등을 생성.

데이터 생성

tain data : 학습에 사용되는 데이터. weight와 bias를 최적화하기 위해 사용

validation data : 1 epoch마다 과적합(overfitteing)을 확인하기 위해 사용. (학습동안)

test data : 학습 후에(최적의 weight와 Bias가 결정된 상황) 정확도를 평가하거나 임의의 입력에 대한 결과를 예측하기 위해 사용.

train data validation data 는 학습 도중, test data 학습 끝나고 사용되는 Data.

2. 모델 구축

# 모델 생성
model = Sequential()

# Layer 추가
model.add(...)
...
model.add(...)

Flatten : 입력층. 입력으로 들어오는 다차원 Data를 1차원으로 정렬하기 위해 사용되는 Layer.

Dense : 은닉층. 각 Layer의 입력과 출력 사이에 있는 모든 노드가 서로 연결되어 있는 완전 연결 층(FC)를 나타냄.

Dense의 첫번째 인자 = 출력 노드 수

노드의 활성화 함수는 activation='...' 로 나타낼 수 있음`

대표적인 활성화 함수

선형회귀 문제에서 linear,

일반적인 classification 경우에는 sigmoid softmax relu tanh 등이 데이터에 따라 다양하게 사용.

# 정통 과정
model.add(Flatten(input_shpe=(1,))
model.add(Dense(2, activation='sigmoid'))
model.add(Dense(1, activation='sigmoid'))

보통 아래와 같이 Dense 한 줄 코드로 사용하는 경우가 많음.

# 일반적으로 많이 사용하는 모델 구축 방법
# Dense 계층을 첫번째로 바로 사용하는 방법
model.add(Dense(2, activation='sigmoid', input_shape=(1,)))

3. 모델 컴파일

model.compile(...)

4. 모델 학습

model.fit(...)

5. 모델 평가 및 예측

model.evalutate(...)
model.predict(...)

6. 모델 저장

model.save(...)

📌 참고

https://www.youtube.com/watch?v=Ke70Xxj2EJw&list=PLS8gIc2q83OhM0RTktKDitgZGX5dHo7Vs&index=6

0개의 댓글