본문 바로가기

AI/TensorFlow 학습

1. TensorFlow 2.x - Eager Execution, Keras 시작

참고: https://youtu.be/YglrA-qoKa4?si=ACcl_1RD962Mnvph

https://youtu.be/Ke70Xxj2EJw?si=mvkRTsikmUpgqHIE

 

아래 내용은 위의 유튜브를 보면서 학습한 내용입니다.

 

-- Eager Execution

TensorFlow 1.x 와 2.0의 큰 차이는 Eager Execution. --> 일반적인 python에서 하는 연산처럼 텐서를 다룰 수 있다.

1.x에서는 Tensor 변수를 다루기 위해서 계산 그래프를 선언하고 세션을 통해 텐서를 주고 받으며 계산.

2.x에서는 그래프와 세션을 만들지 않고 계산이 가능하며 numpy()를 이용하면 텐서와 넘파이 타입으로 변환 가능.

 

2024년인 지금에 와서는 당연하게 받아 들이는 내용이다.

 

-- Keras

위 그림에서 model을 Keras에서는 Sequential()로 정의하고 각 층(layer)를 model안에 넣는 구조.

loss function과 optimizer는 compile()로 지정할 수 있고 학습은 fit()으로 실행한다. 뒤에 예제에서 다시 보자.

 

학습시키고자 하는 데이터를 8:2 또는 9:1로 나누어서 실제 학습에 사용하는 데이터(train data) 로 80~90%를 사용하고 나머지(validation data)를 검증용으로 사용하는 경우가 많고, 이렇게 학습된 모델에 새로운 테이터(test data)를 넣어서 생성한 모델이 잘 동작하는지 확인한다.

 

이번 장표는 실제 텐서플로우에서 모델을 만드는 과정이다. 

Sequential()을 통해서 깡통 model 을 만들고, add를 통해서 각 층을 추가한다.

Flatten, Dense 등과 활성화 함수는 뒤에서 설명하는 것이 이해를 도울 것 같다.

 

모델 컴파일 과정에서 optimizer, loss, metrics(optional)등을 지정해 주어야 한다.

각각 여러가지 종류가 있는데 이것은 실제 사용하는 경우에 살펴보도록 하자.

 

모델 학습과정은 실제 학습할 데이터와 반복횟수, 한번에 넣을 데이터량 등을 지정한다.

 

모델을 평가할 때는 evaluate(), 추론 결과를 보고 싶을 때는 predict()를 사용한다.학습된 모델을 저장하고 다시 불러올 수 있는 함수도 Keras에서 제공한다.

 

다음 글에서는 실제 예제를 다루어 보도록 하자.