'predict' 메서드는 모델이 한 번도 학습한 적 없는 새로운 데이터에 대해 호출되며, 예측 결과와 실제 값이 콘솔에 함께 출력됩니다.
관련 글: TensorFlow란 무엇이며, Keras는 TensorFlow와 어떻게 연동되어 신경망을 생성할까요?
핵심 개념 정리
이 튜토리얼에서는 Keras Sequential API를 사용합니다. Sequential API는 여러 층(layer)을 순서대로 쌓아 올리는 순차 모델을 구축할 때 매우 유용하며, 각 층은 정확히 하나의 입력 텐서와 하나의 출력 텐서를 가집니다.
최소 하나 이상의 합성곱 층(convolutional layer)을 포함하는 신경망을 합성곱 신경망(Convolutional Neural Network, CNN)이라고 부르며, 이를 활용하여 학습 모델을 구축할 수 있습니다.
TensorFlow Text는 TensorFlow 2.0과 함께 사용할 수 있는 텍스트 관련 클래스와 연산(op)들의 모음입니다. 주로 시퀀스 모델링(sequence modelling)의 전처리 단계에서 활용됩니다.
본 예제는 Google Colaboratory(Colab) 환경에서 실행됩니다. Colab은 브라우저에서 별도 설정 없이 바로 Python 코드를 실행할 수 있게 해주며, GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.
Estimator는 완전한 형태의 모델 전체를 나타내는 TensorFlow의 고수준(high-level) 추상화입니다. 모델의 손쉬운 확장(scaling)과 비동기 학습(asynchronous training)을 지원하도록 설계되었습니다.
예제 코드
for pred_dict, expec in zip(predictions, expected):
class_id = pred_dict['class_ids'][0]
probability = pred_dict['probabilities'][class_id]
print('Prediction is "{}" ({:.1f}%), expected "{}"'.format(
SPECIES[class_id], 100 * probability, expec)
)코드 출처 − https://www.tensorflow.org/tutorials/estimator/premade#first_things_first
실행 결과
INFO:tensorflow:Calling model_fn. INFO:tensorflow:Done calling model_fn. INFO:tensorflow:Graph was finalized. INFO:tensorflow:Restoring parameters from /tmp/tmpbhg2uvbr/model.ckpt-5000 INFO:tensorflow:Running local_init_op. INFO:tensorflow:Done running local_init_op. Prediction is "Setosa" (91.3%), expected "Setosa" Prediction is "Versicolor" (52.0%), expected "Versicolor" Prediction is "Virginica" (63.5%), expected "Virginica"
설명
'predict' 메서드가 호출되면, 사전에 학습된 모델이 새로운 입력 데이터에 대한 예측을 수행합니다.
예측된 붓꽃(Iris) 품종 이름과 해당 예측의 신뢰도(확률)가 실제 값과 함께 콘솔에 출력됩니다. 위 결과에서 세 가지 품종(Setosa, Versicolor, Virginica) 모두 올바르게 예측된 것을 확인할 수 있습니다.