티스토리 뷰

ICT-AI-WEB 교육

Keras

이숨니 2023. 9. 1. 09:27

Keras란?

케라스는(Keras)는 파이썬으로 작성된 딥 러닝 API로, 머신러닝 플랫폼 Tensorflow위에서 실행되는 라이브러리입니다.
딥러닝 모델을 보다 편리하게 만들고, 훈련 시킬 수 있습니다.

 

 

 

Keras 구조

텐서플로가 실질적으로 하드웨어를 제어한다면, 케라스는 하드웨어를 제어하는 텐서플로를 제어하는 느낌입니다.
텐서플로가 하드웨어를 얼마나 잘 컨트롤 하고, 어떻게 하면 더 효율적이고 효과적인 딥러닝 엔진을 만들지 고민한다면, 케라스는 텐서플로를 제어해 개발자들이 쉽게 텐서플로를 컨트롤할 수 있는 관점으로 접근합니다.

 

즉, 케라스는 텐서 조작이나 미분 같은 저수준 연산을 다루지 않고, 벡엔드 엔진에서 제공하는 최적화되고 특화된 텐서 라이브러리를 사용합니다. 또한, 케라스는 하나의 텐서 라이브러리에 국한하여 구현되지 않고 모듈 구조로 구성되어 있습니다. 여러 가지 백엔드 엔진이 케라스와 매끄럽게 연동됩니다. 현재는 텐서플로, 씨아노, CNTK 3개를 백엔드 엔진으로 사용할 수 있습니다.

 

 

케라스 특징

1. 동일한 코드로 CPU와 GPU에서 실행할 수 있습니다.
2. 사용하기 쉬운 API를 가지고 있어서 딥러닝 모델의 프로토타입을 빠르게 만들 수 있습니다.
3. 합성곱 신경망, 순환 신경망을 지원하며 이 둘을 자유롭게 조합하여 사용할 수 있습니다.
4. 다중 입력이나 다중 출력 모델, 층의 공유, 모델 공유 등 어떤 네트워크 구조도 만들 수 있습니다. GAN부터 NTM까지 케라스는 어떤 딥러닝 모델에도 적합합니다.

 

케라스의 전형적인 작업 흐름

1. 훈련 데이터(입력 텐서, 타깃 텐서) 정의

2. 입력과 타깃을 매핑하는 층으로 이루어진 네트워크(신경망 모델) 정의

3. 손실 함수, 옵티마이저, 모니터링하기 위한 측정 지표를 선택후 학습 과정을 설명

4. 훈련 데이터에 대해 모델의 fit() 메서드를 반복적으로 호출

 

모델을 정의하는 방법은 2가지 인데, Sequential 클래스(가장 자주 사용하는 구조인 층을 순서대로 쌓아 올린 네트워크) 또는 함수형 API(완전히 임의의 구조를 만들 수 있는 비순환 유향 그래프를 만듦)를 사용합니다.

모델 구조가 정의된 후에는 그 다음 단계는 동일합니다.

'ICT-AI-WEB 교육' 카테고리의 다른 글

원-핫 인코딩(One-hot encoding)  (1) 2023.08.31
Python 기본 문법  (0) 2023.08.30
인공지능 딥러닝 알고리즘  (0) 2023.08.29
생성형(Generative) AI란?  (0) 2023.08.24
댓글