Keras에는 두 가지 형태의 모델이 있습니다. [모델] Sequential과 [모델] 함수형 API입니다.
두 모델 사이에는 공유하는 메소드가 여럿 있습니다.
model.summary()
: 모델의 요약 결과를 출력합니다.model.get_config()
: 모델의 구성을 담고 있는 딕셔너리(dictionary)를 반환합니다. 모델은 다음 코드와 같이 config
를 통해 다시 인스턴스화될 수 있습니다.config = model.get_config()
model = Model.from_config(config)
# or, for Sequential:
model = Sequential.from_config(config)
model.get_weights()
: 모델의 모든 가중치 텐서를 Numpy 배열로 반환합니다.model.set_weights(weights)
: Numpy 배열의 리스트를 인자로 모델의 가중치 값을 설정합니다. 리스트의 배열은 get_weights()
에 의해 반환되는 것과 같은 모양을 가져야 합니다.model.to_json()
: 모델을 JSON 문자열 형태로 표현해 반환합니다. 모델의 아키텍처만 반환되고 가중치는 반환되지 않는다는 점에 주의하세요. 다음과 같은 코드를 통해 JSON 문자열로부터 모델을 다시 인스턴스화할 수 있습니다(가중치는 다시 초기화됩니다).from models import model_from_json
json_string = model.to_json()
model = model_from_json(json_string)
model.to_yaml()
: 모델을 YAML 문자열 형태로 표현해 반환합니다. 모델의 아키텍처만 반환되고 가중치는 반환되지 않습니다. 다음과 같은 코드를 통해 YAML 문자열로부터 모델을 다시 인스턴스화할 수 있습니다(가중치는 다시 초기화됩니다).from models import model_from_yaml
yaml_string = model.to_yaml()
model = model_from_yaml(yaml_string)
model.save_weights(filepath)
: 모델의 가중치를 HDF5 파일로 저장합니다.model.load_weights(filepath, by_name=False)
: (save_weights
로 생성된) HDF5 파일에서 가중치를 불러옵니다. 기본적으로 아키텍처가 변하지 않았다고 전제합니다. 다른 아키텍처의 경우(공통된 계층이 있기는 해야 합니다), by_name=True
를 사용해 같은 이름을 가진 계층의 가중치를 불러올 수 있습니다.이 문서는 Keras의 About Keras Models를 번역한 것입니다.