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 백엔드를 사용할 경우: