1부 딥러닝의 기초
3장 신경망 시작하기
3.2 케라스 소개
케라스(keras)
딥러닝 모델을 만들기 위한 고수준의 구성 요소를 제공하는 모델 수준의 라이브러리
- 케라스의 백엔드 엔진에서 제공하는 최적화되고 특화된 텐서 라이브러리 사용
(텐서 조작이나 미분 같은 저수준의 연산은 다루지 않음.) - 하나의 텐서 라이브러리에 국한하여 구현되어 있지 않고 모듈 구조로 구성
- 현재 3개의 백엔드 엔진으로 사용할 수 있음. (텐서플로, 씨아노, 마이크로 소프트 코그니티브 툴킷)
케라스 특징
- 동일한 코드로 CPU와 GPU에서 실행할 수 있음.
- 사용하기 쉬운 API를 가지고 있어 딥러닝 모델의 프로토타입을 빠르게 만들 수 있음.
- (컴퓨터 비전을 위한) 합성곱 신경망, (시퀀스 처리를 위한) 순환 신경망을 지원하며 이 둘을 자유롭게 조합하여 사용할 수 있음.
- 다중 입력이나 다중 출력 모델, 층의 공유, 모델 공유 등 어떤 네트워크 구조도 만들 수 있음.
- 적대적 생성 신경망부터 뉴럴 튜링 머신까지 케라스는 기본적으로 어떤 딥러닝 모델에도 적합함.
모델을 정의하는 방법
1. Sequential클래스
가장 자주 사용하는 구조인 층을 순서대로 쌓아 올린 네트워크
from keras import models
from keras import layers
model = models.Sepuential()
model.add(layers.Dense(32, activation='relu', input_shape=(784,)))
model.add(layers.Dense(10, activation='softmax'))
2. 함수형 API
완전히 임의의 구조를 만들 수 있는 비순환 유향 그래프
모델이 처리할 데이터 텐서를 만들고 마치 함수처럼 이 텐서에 층을 적용함.
from keras import models
from keras import layers
input_tensor = layers.Input(shape=(784,))
x = layers.Dense(32, activation='relu')(input_tensor)
ouput_tensor = layers.Dense(10, activation='softmax')(x)
model = models.Model(inputs=input_tensor, outputs=output_tensor
모델 구조가 정의된 후, 이후 단계들은 동일
'MLOps 프로젝트 > 도서 '케라스 창시자에게 배우는 딥러닝'' 카테고리의 다른 글
1부 3.4 영화 리뷰 분류: 이진 분류 예제 (0) | 2021.08.29 |
---|---|
1부 3.3 딥러닝 컴퓨터 셋팅 (0) | 2021.08.28 |
1부 3.1 신경망의 구조 (0) | 2021.08.28 |
1부 2.4 신경망의 엔진: 그래디언트 기반 최적화 (0) | 2021.08.23 |
1부 2.3 신경망의 톱니바퀴: 텐서 연산 (0) | 2021.08.23 |