더북(TheBook)

3.6.7 추론: 훈련한 모델 사용하기

모델을 훈련하고 나면 이 모델을 사용하여 새로운 데이터에서 예측을 만들게 됩니다. 이를 추론(inference)이라고 부릅니다. 간단한 방법은 모델의 __call__() 메서드를 호출하는 것입니다.

predictions = model(new_inputs) ----- 넘파이 배열이나 텐서플로 텐서를 받고 텐서플로 텐서를 반환합니다.

하지만 이 방법은 new_inputs에 있는 모든 입력을 한 번에 처리합니다. 데이터가 많다면 가능하지 않을 수 있습니다(특히 GPU 사양보다 많은 메모리가 필요한 경우).

추론을 하는 더 나은 방법은 predict() 메서드를 사용하는 것입니다. 이 메서드는 데이터를 작은 배치로 순회하여 넘파이 배열로 예측을 반환합니다. __call__() 메서드와 달리 텐서플로 Dataset 객체도 처리할 수 있습니다.

predictions = model.predict(new_inputs, batch_size=128) ----- 넘파이 배열이나 Dataset 객체를 받고 넘파이 배열을 반환합니다.

예를 들어 앞서 훈련한 선형 모델의 predict() 메서드를 검증 데이터로 호출하면 각 입력 샘플에 대한 모델의 예측을 나타내는 스칼라 점수를 얻게 됩니다.

>>> predictions = model.predict(val_inputs, batch_size=128)
>>> print(predictions[:10])
[[0.3590725 ]
 [0.82706255]
 [0.74428225]
 [0.682058  ]
 [0.7312616 ]
 [0.6059811 ]
 [0.78046083]
 [0.025846  ]
 [0.16594526]
 [0.72068727]]

지금은 이것이 케라스 모델에 대해 알아야 할 전부입니다. 이제 다음 장에서 케라스로 실전 머신 러닝 문제를 해결할 준비가 되었습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.