1. Keras 소개
    1. [시작하기] Sequential 모델 가이드
    2. [시작하기] 함수형 API 가이드
    3. [시작하기] FAQ
    4. [모델] Keras의 모델
    5. [모델] 함수형 API
    6. [모델] Sequential
    7. [계층] Keras의 계층
    8. [계층] Core 계층
    9. [계층] 합성곱 계층
    10. [계층] 풀링 계층
    11. [계층] 부분적으로 연결된 계층
    12. [계층] 재발 계층
    13. [계층] 임베딩 계층
    14. [계층] Merge 계층
    15. [계층] 고급 활성화 계층
    16. [계층] 표준화 계층
    17. [계층] 노이즈 계층
    18. [계층] 계층 Wrappers
    19. [계층] 자신만의 Keras 계층 만들기
    20. [전처리] 시퀀스 전처리
    21. [전처리] 텍스트 전처리
    22. [전처리] 이미지 전처리
  2. Metrics
  3. 손실
  4. 최적화기
  5. 활성화
  6. Callbacks
  7. 데이터셋
  8. 애플리케이션
  9. 백엔드 1
  10. 백엔드 2
  11. 백엔드 3
  12. 백엔드 4
  13. 백엔드 5
  14. 초기화기
  15. 정규화기
  16. 제한
  17. 시각화
  18. Scikit-Learn API
  19. 유용한 도구

Keras: 파이썬 딥러닝 라이브러리

여러분은 지금 막 Keras를 발견했습니다.

Keras는 파이썬으로 작성되었으며 TensorFlowCNTK 또는 Theano 위에서 실행되는 고수준(high-level) 신경망(neural networks) API입니다. 빠른 실험 수행을 가능하게 하는 것에 중점을 두고 개발되었습니다. 아이디어에서 결과로 나아가는 데 발생하는 지연을 최소화하는 것이 좋은 연구를 하는 열쇠입니다.

다음과 같은 기능을 가진 딥러닝 라이브러리가 필요하다면 Keras를 사용하십시오.

Keras.io에서 전체 문서를 읽을 수 있습니다.

Keras는 다음 파이썬 버전에서 사용할 수 있습니다: Python 2.7-3.5.

가이드 원칙

시작하기: Keras 30초 맛보기

Keras의 핵심 데이터 구조는 모델이며 계층(layer)을 구성하는 데 이용합니다. 가장 간단한 유형의 모델은 Sequential 모델로, 계층을 선형적으로 쌓은 것입니다. 더 복잡한 아키텍처의 경우 Keras 함수형 API를 사용해야 합니다. 이 API를 사용하면 임의의 계층 그래프를 구성할 수 있습니다.

Notice

<aside> 💡 CodeOnWeb에서는 따로 파이썬을 설치하지 않더라도 코드박스 아래의 실행 버튼을 클릭하여 바로 파이썬 코드를 실행해볼 수 있습니다. TensorFlow, Theano와 같은 백엔드 코드도 마찬가지로 설치 없이 실행 버튼만 눌러 실행할 수 있습니다. 'Keras 연습하기' 과정에서는 실행 결과까지 출력하는 예제 코드에 대해서만 실행하여 결과를 확인할 수 있도록 하였습니다.

</aside>

Sequential 모델은 다음과 같이 초기화할 수 있습니다:

from keras.models import Sequential
model = Sequential()

.add()를 이용하면 계층을 손쉽게 쌓을 수 있습니다:

from keras.layers import Dense, Activation

model.add(Dense(units=64, input_dim=100))
model.add(Activation('relu'))
model.add(Dense(units=10))
model.add(Activation('softmax'))

모델이 적당히 구축되었다면 .compile() 메소드(method)를 이용해서 학습 과정을 구성할 수 있습니다:

model.compile(loss='categorical_crossentropy',
										optimizer='sgd',
										metrics=['accuracy'])

필요한 경우 최적화기를 구성할 수도 있습니다. Keras의 핵심 원칙은 구성을 합리적인 수준으로 간단하게 만드는 동시에, 사용자가 필요할 때는 완벽하게 제어할 수 있도록 하는 것입니다(궁극적으로 소스 코드의 쉬운 확장성을 제공).

model.compile(loss=keras.losses.categorical_crossentropy,
							optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))

이제 훈련 데이터를 batch 단위로 반복처리할 수 있습니다:

# x_train and y_train are Numpy arrays --just like in the Scikit-Learn API.
model.fit(x_train, y_train, epochs=5, batch_size=32)

또는, batch 데이터를 여러분이 직접 모델에 공급할 수도 있습니다:

model.train_on_batch(x_batch, y_batch)

한 줄만 써주면 성능을 평가해볼 수 있습니다:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)

새로운 데이터에 관한 결과를 예측해볼 수도 있습니다:

classes = model.predict(x_test, batch_size=128)

질문 응답 시스템, 이미지 분류 모델, 뉴럴 튜링 머신(Neural Turing Machine), 기타 다른 모델을 구축하는 작업도 이처럼 빠르게 할 수 있습니다. 딥러닝 이면에 있는 아이디어는 참 간단한데, 구현이 어려워야만 할 이유가 있을까요?

Keras에 관한 더 자세한 튜토리얼은 다음 문서를 참고하십시오.

설치

Keras는 다음과 같은 의존성을 가지고 있습니다:

TensorFlow 백엔드를 사용할 경우:

CNTK 백엔드를 사용할 경우:

Theano 백엔드를 사용할 경우:

Keras를 설치하기 위해 Keras 폴더로 cd하고 설치 명령을 실행하십시오.

sudo python setup.py install

PyPI를 통해 Keras를 설치할 수도 있습니다.

sudo pip install keras

TensorFlow에서 CNTK나 Theano로 전환하기

기본적으로 Keras는 텐서 조작 라이브러리로 TensorFlow를 사용합니다. Keras 백엔드를 설정하고 싶다면 이 문서를 참고하십시오.

지원

질문을 하거나 개발에 관한 의견을 개진할 수 있습니다.

Github 이슈를 통해 버그 리포트와 기능 요청을 할 수도 있습니다. 이는 오직 Github에서만 가능하며, 가이드라인을 먼저 참고해주십시오.

Keras라는 이름은?

Keras(κέρας)는 그리스어로 (horn)을 의미합니다. 오딧세이에서 처음 발견되는 그리스 및 라틴 문학의 문학적 이미지를 참고하였는데, 이에 따르면 꿈의 영혼(Oneiroi, 단수형은 Oneiros)은 상아로 된 문을 통해 이승에 도달하여 가짜 환영으로 사람들을 속이는 영혼과, 뿔로 된 문을 통해 이승에 도달하여 실제로 이루어질 미래를 알려주는 영혼으로 나뉜다고 합니다. κέρας(horn, 뿔) / κραίνω(fulfill, 이행), ἐλέφας(ivory, 상아) / ἐλεφαίρομαι(deceive, 속임수)를 이용한 일종의 말장난 입니다.

Keras는 원래 ONEIROS(Open-ended Neuro-Electronic Intelligent Robot Operating System) 프로젝트의 연구 노력의 일환으로 개발되었습니다.

"오네이로이는 우리의 이해를 넘어서 있다. 그것이 어떤 이야기를 들려줄 것인지 누가 확신할 수 있겠는가? 사람들이 원한다고 해서 모든 것이 다가오지는 않는다. 덧없는 오네이로이가 지나갈 수 있는 두 개의 문이 있다. 하나는 뿔로, 다른 하나는 상아로 만들어어져 있다. 톱니 모양의 상아를 지나온 오네이로이는 기만적이고 이루어질 수 없는 메시지를 가지고 온다. 잘 연마된 뿔을 지나온 오네이로이는 그 뒤에 진실을 달고 오는데, 이 진실은 알아보는 사람들에 의해 성취된다." 호머, 오딧세이 19. 562 ff (Shewring 번역).


이 문서는 Keras의 Home을 번역한 것입니다.