My Data Story

[딥러닝] 인공 신경망 - 케라스 API 소개 본문

Deep Learning

[딥러닝] 인공 신경망 - 케라스 API 소개

Hwasss 2021. 9. 4. 14:55
728x90

◈  '인공 신경망' 목차 

1. 퍼셉트론

2. 다층 퍼셉트론

3. 케라스 API 소개

    딥러닝 API 중 가장 많이 사용되는 케라스 API 에 대해 살펴보고, 텐서플로우 기반의 케라스 구현 방법을 살펴보자.

4. 시퀀셜 API 구현

5. 함수형 API 구현

6. 서브클래싱 API 구현

7. 모델 저장과 복원, 콜백, 텐서보드

8. 신경망 하이퍼파라미터 튜닝하기


1. 딥러닝 API 

케라스는 모든 종류의 신경망을 손쉽게 만들고 훈련, 평가, 실행할 수 있는 고수준 딥러닝 API이다. 

 

케라스는 계산 백엔드에 의존하여 신경망에 필요한 많은 연산을 수행한다.

인기 있는 세 가지 딥러닝 라이브러리 중에서 백엔드를 선택할 수 있었다.

˙ 텐서플로

˙ 마이크로소프트 코그니티브 툴킷(CNTK)

˙ 시애노

 

혼동을 피하기 위해 이를 멀티백엔드 케라스라고 부르겠다.

 

 

 

2016년 후반부터 다른 구현이 릴리스되기 시작했다. 

˙ Apache MXNet

˙ 애플의 Core ML

˙  자바스크립트나 타입스크립트 - 웹브라우저에서 케라스 코드를 실행할 때
˙  PlaidML - 엔비디아 뿐 아니라 모든 종류의 GPU 장치에서 실행할 때

 

또한 텐서플로는 자체적인 케라스 구현인 tf.keras를 번들로 포함시켜, 이 구현은 백엔드로 텐서플로만 지원한다. 

대신 데이터 적재와 전처리를 간편하게 수행할 수 있는 텐서플로 데이터 API를 지원함으로써 장점을 추가하였다.

 

 

텐서플로와 케라스 다음으로 인기 있는 딥러닝 라이브러리가 페이스북 파이토치이다. 

이 API는 케라스와 매우 비슷하여, 케라스를 배운고 나서 파이토치를 배우는 것은 어렵지 않을 것이다. 

 

 

2. 텐서플로로 구현하기

2.1 텐서플로2 설치

$ python3 -m pip install -U tensorflow

======================================================================================

import tensorflow as tf
from tensorflow import keras

print(tf.__version__)
#(출력) '2.0.0'
print(kears.__version__)
#(출력) '2.2.4-tf' 
#-tf 접미사는 tf.keras가 텐서플로 특화된 기능이 추가되어 케라스 API를 구현했다는 것을 나타냅니다.

 

 

2.2 텐서플로 상 임포팅 방식

■  방법1

전체 경로를 활용하여 코딩 시, 장황하지만 어떤 패키지를 사용하는 지 쉽게 알 수 있고 표준 클래스와 사용자 정의 클래스 사이에서 혼란을 피할 수 있다.

from tensorflow import keras
output_layer = keras.layers.Dense(10)

 

■  방법2

 

실전에서는 해당 임포팅 방식을 선호한다.

from tensorflow.keras.layer import Dense
output_layer = Dense(10)