개요
Tensorflow Serving Inception-v3 원격 이미지 추론 서버 만들기.
기존의 추론 스크립트를 클래스화 시켜서 필요 시마다 호출 하는 방법도 있지만 serving을 사용해 본다
마침 inception 예제를 제공한다
Tensorflow, Bazel가 먼저 설치 되어 있어야 한다.
tensorflow와 각종 model을 사용 시 이상이 없는 환경에서 한다
준비 : 필요한 패키지 설치
serving을 사용하기 전 필요한 패키지를 설치한다
미리 설치한 패키지는 자동으로 넘어간다
sudo apt-get update && sudo apt-get install -y \ build-essential \ curl \ libcurl3-dev \ git \ libfreetype6-dev \ libpng12-dev \ libzmq3-dev \ pkg-config \ python-dev \ python-numpy \ python-pip \ software-properties-common \ swig \ zip \ zlib1g-dev |
준비 : Tensorflow-Serving 소스
https://github.com/tensorflow/serving
적절한 곳에 전체 소스코드를 받는다
git clone https://github.com/tensorflow/serving.git |
여기서 tensorflow , tf_model 폴더는 비어있는 폴더다.
이 폴더 안에는 ttensorflow 소스코드 , models 소스코드를 추가로 가져와야 한다
하지만 자신이 기존에 사용했던 tensorflow 소스코드 , models 소스코드 사용 하려면 따로 설정할 수 있다
준비 : 컴파일 사전 설정
컴파일 환경 설정을 바꿔야 한다
python 실행 환경, 기존의 tensorflow 소스코드 , models 소스코드 위치를 지정한다
이번 설정은 특히 오타와 경로에 주의하여 작업한다
여기서 잘못되면 오류 뿜뿜
1. Python 기본 경로 설정
gedit serving/tools/bazel.rc |
가운데 부분만 건들면 된다
build:cuda --crosstool_top=@org_tensorflow//third_party/gpus/crosstool |
빨간 글씨만 자신의 환경에 맞춰 한다.
나는 anaconda2의 파이썬을 사용 하기 때문에 아래와 같이 수정 했다
위와 같이 자신의 경로에 맞게 설정 한다
2. tensorflow 소스코드 경로 설정
gedit serving/WORKSPACE |
workspace(name = "tf_serving") |
빨간 글시 부분을 자신이 사용하던 tensorflow 소스코드 경로를 지정 한다.
3. models 소스코드 경로 설정
gedit /serving/tensorflow_serving/workspace.bzl |
# TensorFlow Serving external dependencies that can be loaded in WORKSPACE |
빨간 글씨 부분만 맞게 수정
컴파일 : tensorflow-serving 컴파일
위의 설정을 다시 한번 확인해 보고 하자
serving 폴더의 루트로 가서 터미널 열고
아래를 입력한다. 이때 뒤에 ... 오타 아니니 꼭 그대로 복사하기
그리고 기다리기/....
bazel build -c opt tensorflow_serving/... |
위와 같이 입력하면 컴파일 시작 한다. 무수히 많은 경고가 뜨지만 잡을 자신이 없어
빨간 에러만 없으면 오케이
컴파일이 끝났다.
서버 정보를 볼까?
bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server |
포트 번호부터 플래그에 대한 설명 기타등등 많아요
테스트 : tensorflow-serving 테스트 (선택)
컴파일이 잘 되었으니 테스트 기능을 해보자
처음 실행시키면 좀 걸린다
bazel test tensorflow_serving/... |
이런거 나오고 끝난다
여기까지 완료 했다면 Tensorflow-Serving 기본 준비 완료 !
'archive.tar' 카테고리의 다른 글
[Tensorflow] Python socket, Java Spring 을 사용한 이미지 추론 서버 (8) | 2017.07.25 |
---|---|
[Tensorflow-Serving] Inception-v3 서버 만들기 (0) | 2017.06.25 |
[Ubuntu]우분투 무한 로그인 해결 여러 방법들 (1) | 2017.05.18 |
[TensorFlow] Inception v3 모델 를 이용하여 Android 에서 이미지 분류 해보기 (0) | 2017.05.15 |
[Keras] Image Data Generator 이미지 갯수 늘리기 (16) | 2017.04.16 |