[Tensorflow] Tensorflow Serving models.config 설정 방법
- 인공지능
- 2022. 3. 21. 21:47
참조
- https://ichi.pro/ko/tensorflow-serving-eul-sayonghayeo-daleun-model-beojeon-eul-jegonghaneun-bangbeob-eun-mueos-ibnikka-244526198184183
- https://www.tensorflow.org/tfx/serving/docker
목적
- Tensorflow Serving 을 사용할 때
models.config
파일을 통해 모델 서버 구성 파일을 사용하여 모델 환경 설정을 할 수 있습니다. - 모델 서버 구성 파일은 프로토콜 버퍼 파일(protobuf)로, 언어 중립적이고 플랫폼 중립적 인 확장 가능하지만 구조 데이터를 직렬화하는 간단하고 빠른 방법을 제공합니다.
모델 구성 파일 예시
model_config_list {
config {
name: 'mnist'
base_path: '/models/mnist/'
model_platform: 'tensorflow'
model_version_policy: {all: {}}
}
}
- name : 게재 가능한 모델 이름
- base_path : 제공 가능한 버전을 찾을 경로를 지정합니다.
- model_flatform : 모델이 개발된 플랫폼 정보입니다.
- model_version_policy : 모델의 버전 정책은 클라이언트를 로드하고 제공할 모델의 버전을 나타냅니다. 기본적으로 모델의 최신 버전이 제공되며, model_version_policy 필드를 변경하여 재정의 할 수 있습니다.
models.config 파일 생성
- 로컬 PC에 Tensorflow Serving Docker Container 와 볼륨 하기 전 models.config 파일이 우선 있어야 합니다.
- models.config 파일이 없으면, Docker Container 가 정상적으로 실행되지 않습니다.
- models.config 실행 경로는, 본인 로컬 경로 자유롭게 설정하면 됩니다.
- 저는 Training 된 모델이 저장된 save_model 경로 안에 Config 디렉토리 생성하여 model.config 파일 생성했습니다.
- 파일 내용은 아래와 같습니다.
- 현재 Config 파일 내용을 보게 되면 총 2개의 Model Xception, vgg_19 를 정의 하였습니다.
- 아래와 같이 설정하게 되면, Tensorflow Serving은 주기적으로 Xception, vgg_19 모델의 경로를 Polling 하여 모델을 주기적으로 Inference 하여 결과 값을 추론하게 됩니다.
model_config_list {
config {
name: 'Xception'
base_path: '/models/model/Xception/'
model_platform: 'tensorflow'
}
config {
name: 'vgg_19'
base_path: '/models/model/vgg_19/'
model_platform: 'tensorflow'
}
}
Docker로 model_config_file 설정 및 컨테이너 실행
- 다음 명령어를 통해 Tensorflow Serving 컨테이너를 실행 합니다.
docker run -t --rm --name=tf-serving-mnist \
-p 8500:8500 \
-p 8501:8501 \
-v "C:/src/test_data/save_model/tensorflow/:/models/model" \
tensorflow/serving \
--model_name=mnist-model \
--model_config_file=/models/model/models.config \
--model_config_file_poll_wait_seconds=60
- 위 명령어 의미는 다음과 같습니다.
- --rm : docker 컨테이너가 종료됨과 동시에 자동으로 삭제 기능
- -p : 포트포워딩, 포트 맵핑 설정, -p 옵션을 추가하여 실행함으로써 포트 포워딩 설정 할 수 있습니다.
- 8500 : gRPC 서버
- 8501 : rest API 서버
- -v : Docker Volume 설정
- --model_name : 모델 이름 설정
- model_config_file :
models.config
파일 경로 - model_config_file_poll_wait_seconds : Tensorflow Serving 모델 확인
- 위 명령어를 실행하게 되면 tf-serving-mnist 이름의 Docker Container가 실행됩니다.
컨테이너 정상 실행
- 정상적으로 tf-serving-mnist 컨테이너가 실행된 것을 확인할 수 있습니다.
728x90
'인공지능' 카테고리의 다른 글
[TensorFlow] TF Serving 1번 버전 없이 다른 버전 동작 기능 확인 (0) | 2022.03.22 |
---|---|
[TensorFlow] Tensorflow Serving 모델 업데이트 방법 (0) | 2022.03.22 |
[텐서플로우] 모델 summary param 의미 (0) | 2022.03.20 |
[인공지능] 텐서플로우 - 1에서 10까지 예측 모델 구하기(선형회귀) (0) | 2022.03.20 |
[인공지능] gRPC 메타데이터 input, ouput 정보 가져오기 (0) | 2022.03.16 |
이 글을 공유하기