기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
TensorFlow 서비스
TensorFlow Serving
tensorflow-serving-api
는 Conda를 사용한 딥 러닝AMI에 사전 설치되어 있습니다! 에서 MNIST 모델을 훈련, 내보내기 및 서비스할 예제 스크립트를 찾을 수 있습니다~/examples/tensorflow-serving/
.
이러한 예제를 실행하려면 먼저 CondaAMI를 사용하여 딥 러닝에 연결하고 TensorFlow 환경을 활성화합니다.
$
source activate tensorflow2_p310
이제 서비스할 예제 스크립트가 있는 폴더로 이동합니다.
$
cd ~/examples/tensorflow-serving/
Pretrained Inception Model 제공
다음은 Inception과 같은 다른 모델을 제공하기 위해 시도할 수 있는 예제입니다. 일반적으로 에 이미 다운로드하려면 사용 가능한 모델과 클라이언트 스크립트가 필요합니다DLAMI.
Inception 모델을 사용하여 추론 제공 및 테스트
-
이 모델을 다운로드합니다.
$
curl -O https://s3-us-west-2.amazonaws.com/tf-test-models/INCEPTION.zip -
이 모델의 압축을 해제합니다.
$
unzip INCEPTION.zip -
허스키 그림을 다운로드합니다.
$
curl -O https://upload.wikimedia.org/wikipedia/commons/b/b5/Siberian_Husky_bi-eyed_Flickr.jpg -
서버를 시작합니다. Amazon Linux의 경우
model_base_path
에 사용되는 디렉터리를/home/ubuntu
에서/home/ec2-user
로 변경해야 합니다.$
tensorflow_model_server --model_name=INCEPTION --model_base_path=/home/ubuntu/examples/tensorflow-serving/INCEPTION/INCEPTION --port=9000 -
서버가 포그라운드에서 실행 중일 때 계속하려면 다른 터미널 세션을 시작해야 합니다. 새 터미널을 열고 TensorFlow 로 활성화합니다
source activate tensorflow2_p310
. 그런 다음 원하는 텍스트 편집기를 사용하여 다음 내용이 들어 있는 스크립트를 생성합니다. 이름을inception_client.py
로 지정합니다. 이 스크립트는 이미지 파일 이름을 파라미터로 받아서 사전 교육 모델에서 예측 결과를 가져옵니다.from __future__ import print_function import grpc import tensorflow as tf import argparse from tensorflow_serving.apis import predict_pb2 from tensorflow_serving.apis import prediction_service_pb2_grpc parser = argparse.ArgumentParser( description='TF Serving Test', formatter_class=argparse.ArgumentDefaultsHelpFormatter ) parser.add_argument('--server_address', default='localhost:9000', help='Tenforflow Model Server Address') parser.add_argument('--image', default='Siberian_Husky_bi-eyed_Flickr.jpg', help='Path to the image') args = parser.parse_args() def main(): channel = grpc.insecure_channel(args.server_address) stub = prediction_service_pb2_grpc.PredictionServiceStub(channel) # Send request with open(args.image, 'rb') as f: # See prediction_service.proto for gRPC request/response details. request = predict_pb2.PredictRequest() request.model_spec.name = 'INCEPTION' request.model_spec.signature_name = 'predict_images' input_name = 'images' input_shape = [1] input_data = f.read() request.inputs[input_name].CopyFrom( tf.make_tensor_proto(input_data, shape=input_shape)) result = stub.Predict(request, 10.0) # 10 secs timeout print(result) print("Inception Client Passed") if __name__ == '__main__': main()
-
이제 서버 위치, 포트 및 허스키 사진의 파일 이름을 파라미터로 전달하는 스크립트를 실행합니다.
$
python3 inception_client.py --server=localhost:9000 --image Siberian_Husky_bi-eyed_Flickr.jpg
MNIST 모델 훈련 및 서비스 제공
이 자습서에서는 모델을 하나 내보낸 다음 tensorflow_model_server
애플리케이션으로 서비스해 보겠습니다. 마지막으로, 예제 클라이언트 스크립트로 모델 서버를 테스트할 수 있습니다.
MNIST 모델을 훈련하고 내보낼 스크립트를 실행합니다. 이 스크립트의 유일한 인수인 폴더 위치를 입력해야 모델이 저장됩니다. 여기서는 그냥 mnist_model
이라고 입력하겠습니다. 그러면 스크립트가 폴더를 만들어 줍니다.
$
python mnist_saved_model.py /tmp/mnist_model
이 스크립트에서 결과가 출력되려면 시간이 걸리므로 인내심을 가지고 기다리십시오. 학습이 완료되어 모델을 최종적으로 내보내면 다음과 같은 결과를 보게 됩니다.
Done training! Exporting trained model to mnist_model/1 Done exporting!
다음 단계는 tensorflow_model_server
를 실행하여 내보낸 모델에 서비스를 제공하는 것입니다.
$
tensorflow_model_server --port=9000 --model_name=mnist --model_base_path=/tmp/mnist_model
서버를 테스트하기 위한 클라이언트 스크립트가 준비되어 있습니다.
테스트해 보려면 새 터미널 창을 열어야 합니다.
$
python mnist_client.py --num_tests=1000 --server=localhost:9000
더 많은 기능과 예제
TensorFlow Serving에 대해 자세히 알아보려면 TensorFlow 웹 사이트를
Amazon Elastic Inference 에서 TensorFlow 서비스를 사용할 수도 있습니다. 자세한 내용은 Elastic Inference with TensorFlow Serving을 사용하는 방법에 대한 가이드를 참조하세요.