Notice
<aside> 💡 CodeOnWeb에서는 따로 파이썬을 설치하지 않더라도 코드박스 아래의 실행 버튼을 클릭하여 바로 파이썬 코드를 실행해볼 수 있습니다. TensorFlow, Theano와 같은 백엔드 코드도 마찬가지로 설치 없이 실행 버튼만 눌러 실행할 수 있습니다. 'Keras 연습하기' 과정에서는 실행 결과까지 출력하는 예제 코드에 대해서만 실행하여 결과를 확인할 수 있도록 하였습니다.
</aside>
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>}},
}
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'
다음은 Keras를 정확하게 이용하기 위해 제대로 알고 이해할 필요가 있는 일반적인 정의입니다:
fit
메소드와 evaluation_data
혹은 evaluation_split
을 사용할 경우, 평가는 매 epoch의 끝에 수행됩니다.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')