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 FAQ: Keras에 대해 자주 묻는 질문들


Notice

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

</aside>

Keras를 어떻게 인용하면 되죠?

Keras가 연구에 도움이 되었다면 당신의 저작물에 인용해 주세요. 예를 들어 BibTeX 양식으로는 다음과 같습니다:

@misc{chollet2015keras,
  title={Keras},
  author={Chollet, Fran\\c{c}ois and others},
  year={2015},
  publisher={GitHub},
  howpublished={\\url{<https://github.com/fchollet/keras>}},
}

GPU에서 Keras를 어떻게 돌릴 수 있죠?

TensorFlow나 CNTK 백엔드에서 돌리고 있는 경우에 사용 가능한 GPU가 감지된다면 코드는 자동으로 GPU에서 돌아갈 겁니다.

Theano 백엔드에서 돌리고 있는 경우에는 다음과 같은 방법을 사용하세요:

방법 1: Theano flags를 사용합니다.

THEANO_FLAGS=device=gpu,floatX=float32 python my_keras_script.py

'gpu'라는 이름은 당신의 기기의 식별자에 따라 변경해야 할 수도 있습니다(예를 들어, gpu0, gpu1, 등등).

방법 2: .theanorc를 설정하세요: 설정 방법

방법 3: 다음과 같이 코드의 시작 부분에 직접 theano.config.device, theano.config.floatX을 설정해 주세요:

import theano
theano.config.device = 'gpu'
theano.config.floatX = 'float32'

"샘플", "batch", "epoch"가 무슨 뜻인가요?

다음은 Keras를 정확하게 이용하기 위해 제대로 알고 이해할 필요가 있는 일반적인 정의입니다:


Keras 모델을 어떻게 저장할 수 있나요?

전체 모델 저장하기/불러오기 (아키텍처 + 가중치 + 최적화기 상태)

Keras 모델을 저장하기 위해서는 pickle이나 cPickle을 사용하는 것을 추천합니다.

model.save(filepath)을 사용하여 Keras 모델을 다음과 같은 항목을 포함는 하나의 HDF5 파일에 저장할 수 있습니다:

모델을 다시 인스턴스화하기 위해 keras.models.load_model(filepath)을 사용할 수 있습니다. load_model은 저장된 훈련 구성을 사용하여 모델을 컴파일 할 수 있도록 합니다(원래의 모델이 컴파일된 적이 없지 않은 경우).

예제입니다:

from keras.models import load_model

model.save('my_model.h5')  # creates a HDF5 file 'my_model.h5'
del model  # deletes the existing model

# returns a compiled model
# identical to the previous one
model = load_model('my_model.h5')

모델의 아키텍처만 저장하기/불러오기

가중치나 훈련 구성은 빼고 모델의 아키텍처만 저장할 필요가 있을 때는, 다음과 같이 할 수 있습니다:

# save as JSON
json_string = model.to_json()

# save as YAML
yaml_string = model.to_yaml()

생성된 JSON / YAML 파일은 사람이 읽을 수 있고, 필요 시 직접 수성할 수 있습니다.

또한 이 데이터로 부터 다음과 같이 새로운 모델을 만들 수도 있습니다:

# model reconstruction from JSON:
from keras.models import model_from_json
model = model_from_json(json_string)

# model reconstruction from YAML
from keras.models import model_from_yaml
model = model_from_yaml(yaml_string)

모델의 가중치만을 저장하기/불러오기

모델의 가중치만을 저장할 필요가 있을 때는, 아래와 코드와 같이 HDF5 형식으로 할 수 있습니다.

다만, HDF5와 파이썬 라이브러리 h5py는 Keras와 같이 설치되지 않으므로 별도로 설치하여야 한다는 점에 주의하세요.

model.save_weights('my_model_weights.h5')

모델을 인스턴스화하는 코드가 있다고 한다면, 저장한 가중치를 동일한 아키텍처를 가진 모델에 불러와 적용할 수 있습니다.

model.load_weights('my_model_weights.h5')