Path: blob/master/site/ko/tfx/tutorials/serving/rest_simple.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
TensorFlow Serving을 사용한 TensorFlow 모델 훈련 및 제공
경고: 이 노트북은 Google Colab에서만 실행되도록 설계되었습니다. 시스템에 패키지를 설치하고 루트 권한이 필요합니다. 로컬 Jupyter 노트북에서 실행하려면 주의해서 진행하세요.
참고: 이 예제는 Jupyter 스타일 노트북에서 바로 실행할 수 있으며 설정이 필요하지 않습니다. "Google Colab에서 실행"을 클릭하세요.
이 가이드는 신경망 모델을 훈련하여 운동화 및 셔츠와 같은 의류 이미지를 분류하고 훈련된 모델을 저장한 다음 TensorFlow Serving을 사용하여 제공합니다. TensorFlow의 모델링 및 훈련이 아니라 TensorFlow Serving에 초점을 맞춥니다. 따라서 모델링 및 훈련에 초점을 맞춘 전체 예제는 기본 분류 예제를 참조하세요.
이 가이드는 TensorFlow에서 모델을 빌드하고 훈련하는 데 상위 수준 API인 tf.keras를 사용합니다.
모델 생성하기
Fashion MNIST 데이터세트 가져오기
이 가이드는 10개 범주의 70,000개 회색조 이미지를 포함하는 Fashion MNIST 데이터세트를 사용합니다. 이미지는 다음과 같이 저해상도(28x28 픽셀)의 개별 의류 품목을 보여줍니다.
![]() |
그림 1. Fashion-MNIST 샘플(Zalando, MIT License). |
Fashion MNIST는 컴퓨터 비전용 머신러닝 프로그램의 "Hello, World"로 종종 사용되는 고전적인 MNIST 데이터세트를 대체하기 위한 것입니다. TensorFlow에서 직접 Fashion MNIST에 액세스하고 데이터를 가져와서 로드할 수 있습니다.
참고: 실제로는 이미지이지만, 바이너리 이미지 객체가 아닌 NumPy 배열로 로드됩니다.
모델 훈련 및 평가하기
모델링 부분에 초점을 맞추지 않았으므로 가능한 가장 간단한 CNN을 사용하겠습니다.
모델 저장하기
훈련된 모델을 TensorFlow Serving으로 로드하려면 먼저 SavedModel 형식으로 저장해야 합니다. 이렇게 하면 잘 정의된 디렉토리 계층 구조에 protobuf 파일이 생성되고 버전 번호가 포함됩니다. TensorFlow Serving을 사용하면 추론 요청을 할 때 사용할 모델 버전 또는 '서비스 가능(servable)'을 선택할 수 있습니다. 각 버전은 지정된 경로 아래의 다른 하위 디렉토리로 내보내집니다.
저장된 모델 검사하기
명령줄 유틸리티 saved_model_cli
를 사용하여 SavedModel에서 MetaGraphDefs(모델) 및 SignatureDefs(호출할 수 있는 메서드)를 살펴보겠습니다. TensorFlow 가이드에서 SavedModel CLI 토론을 참조하세요.
모델에 대해 많은 것을 알 수 있습니다! 이 경우, 방금 모델을 훈련했으므로 이미 입력과 출력을 알고 있지만, 그렇지 않은 경우에는 중요한 정보를 알 수 있습니다. 예를 들어, 회색조 이미지 데이터라는 사실과 같이 모든 것을 알려주지는 않지만, 시작으로는 좋습니다.
TensorFlow Serving으로 모델 제공하기
경고: Google Colab에서 실행하지 않는 경우, 다음 셀을 실행하면 루트 액세스 권한이 있는 시스템에 패키지가 설치됩니다. 로컬 Jupyter 노트북에서 실행하려면 주의해서 진행하세요.
TensorFlow Serving 배포 URI를 패키지 소스로 추가합니다.
We're preparing to install TensorFlow Serving using Aptitude since this Colab runs in a Debian environment. We'll add the tensorflow-model-server
package to the list of packages that Aptitude knows about. Note that we're running as root.
참고: 다음 예는 기본적으로 TensorFlow Serving을 실행하지만, TensorFlow Serving을 사용하여 시작하는 가장 쉬운 방법 중 하나인 Docker 컨테이너에서 실행할 수도 있습니다.
TensorFlow Serving을 설치합니다.
명령줄 하나가 필요한 것의 전부입니다!
TensorFlow Serving 실행을 시작합니다.
여기에서 TensorFlow Serving 실행을 시작하고 모델을 로드합니다. 모델을 로드한 후 REST를 사용하여 추론 요청을 시작할 수 있습니다. 몇 가지 중요한 매개변수가 있습니다.
rest_api_port
: REST 요청에 사용할 포트입니다.model_name
: REST 요청의 URL에서 사용할
것이며, 무엇이든 될 수 있습니다.model_base_path
: 모델을 저장한 디렉토리의 경로입니다.
TensorFlow Serving에서 모델에 요청하기
먼저, 테스트 데이터에서 임의의 예제를 살펴보겠습니다.
흥미로워 보입니다. 여러분이 인식하기 얼마나 어렵습니까? 이제 3가지 추론 요청 배치를 위해 JSON 객체를 만들고 모델이 얼마나 잘 인식하는지 살펴보겠습니다.
REST 요청 만들기
최신 버전의 servable
서버의 REST 엔드 포인트에 POST로 예측 요청을 보내고 3가지 예제를 전달합니다. 특정 버전을 지정하지 않음으로써 서버에 최신 버전의 servable을 요청할 것입니다.
특정 버전의 servable
이제 servable의 특정 버전을 지정하겠습니다. 하나만 있으므로 버전 1을 선택하겠습니다. 3가지 결과도 모두 살펴보겠습니다.