본문 바로가기
Python

[Keras] model.compile(), 모델 컴파일

by Henry Cho 2022. 7. 28.
728x90

model.compile(), 모델 컴파일


포스트 난이도: HOO_Senior

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


# 모델 컴파일

 

Keras(케라스) 라이브러리를 통해 Machine learning 모델을 만든다고 한다면 꼭 있어야 하는 부분이 바로 컴파일에 대한 모델이다. 앞선 포스트에서 Sequetional 모델을 통해 학습 모델의 layers들을 작성하는 방법에 대해서 알아보았다. 이렇게 만들어진 layers들을 기반으로 해당 모델의 컴파일을 해줘야 하는데 이때 필요한 것이 model.compile()이다.

 

언제나 그렇듯 아직까지는 데이터 기반 인공지능이다 보니, 어떻게 컴파일을 할 것인지에 대해서 컴퓨터에게 알려주어야 한다. model.compile()은 이러한 역할을 수행하는 기능이며 학습 단계를 설정할 수 있다. 예를 들어 손실 함수를 지정해서 weight와 threshold 값을 설정할 수 있다. 또한 Training 과정 자체를 설정하고 Training을 모니터링하는 방식 또한 model.compile()에서 지정이 가능하다. 아래의 코드는 model.compile()의 예제들이다.

 

model.compile(
    optimizer='adam',
    loss='binary_crossentropy',
    metrics=['binary_accuracy'],
)
model.compile(
    optimizer='adam',
    loss='categorical_crossentropy',
    metrics=['binary_accuracy'],
)
model.compile(
    optimizer='adam',
    loss='binary_crossentropy',
    metrics=['accuracy'],
)

 

손실 함수 작성 부분에 해당하는 loss의 경우에는 손실 함수 종류에 따라 다르게 설정이 가능하다. 마찬가지로 metrics 부분도 accuracy를 설정함에 있어서 binary_accuracy와 같이 특정한 정확도를 별도로 설정할 수 있다. 본인의 ML 프로젝트에 맞춰서 compile model 설정이 가능하다.


 

728x90

'Python' 카테고리의 다른 글

[Python] def 란?  (0) 2022.08.03
[Python] if 문이란? (if statement)  (0) 2022.07.31
[Keras] Dense layer, Dense class  (0) 2022.07.21
[Keras] Batch Normalization  (0) 2022.07.21
[Keras] Sequential Model  (0) 2022.07.19

댓글