[TensorFlow] Tensorflow Serving 모델 업데이트 방법
- 인공지능
- 2022. 3. 22. 19:24
참조
목적
- Tensorflow Serving에서 모델 업데이트 방법에 대해 조사합니다.
TensorFlow Serving 모델 폴더 구조
- TensorFlow Serving은 다음과 같은 전형적인 모델 폴더 구조를 가진 모델의 업데이트를 지원합니다.
/saved_model_files
/1 # model files of version 1
/assets
/variables
saved_model.pb
...
/N # model files of version N
/assets
/variables
saved_model.pb
- 위의 1 ~ N 의 서브폴더는 버전 번호가 다른 모델을 나타냅니다.
--model_base_path
를 지정할 때는 루트 디렉토리의 절대 주소 만 지정하면 됩니다.- 예를 들어, 위의 폴더 구조가 home/snowkylin 폴더에 있는 경우 --model_base_path 를 home/snowkylin/saved_model_files 로 설정해야 합니다.
- TensorFlow Serving은 로드하기 위해 버전 번호가 가장 큰 모델을 자동으로 선택합니다.
- 예를 들어, Xception 모델을 이용하여 Train 을 하고 SaveModel 한 내용을
Xception/1
에 저장하고, 2 번째로 다시 Train한 SaveModel 정보를Xception/2
경로에 저장이 되어 있다면, TensorFlow Serving 에서는 자동으로 번호가 큰 2번 경로의 SaveModel 정보를 가지고 Inference 작업을 진행합니다.
테스트 진행
- 실제로 버전 번호가 높은 버전이 실제로 TensorFlow Serving에서 Inference 되는지 테스트 진행하였습니다.
1. TensorFlow Serving Docker 실행
- 먼저, Docker 로 TensorFlow Serving Container를 실행합니다.
- 실행 명령어는 아래와 같습니다.
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/Config/models.config \
--model_config_file_poll_wait_seconds=60
2. 대상 모델 Xception 디렉토리 확인
- 테스트 진행을 위해 C:/src/test_data/save_model/tensorflow/Xception 디렉토리 안에 1, 2 폴더를 생성해 놓았고, SaveModel 정보들도 넣어 놓았습니다.
2. 실행된 Container 로그 확인
- 로그 확인 결과, XCeption 모델의 경우 현재 1, 2 버전의 모델이 저장되어 있습니다.
- 여기서, TensorFlow Serving Container를 실행하니까 자동으로 TensorFlow Serving에서는 2번 버전의 모델을 Loading 한 것을 로그로 확인할 수 있습니다.
728x90
'인공지능' 카테고리의 다른 글
[TensorFlow] TensorFlow Serving 다중 모델 로딩 (0) | 2022.03.22 |
---|---|
[TensorFlow] TF Serving 1번 버전 없이 다른 버전 동작 기능 확인 (0) | 2022.03.22 |
[Tensorflow] Tensorflow Serving models.config 설정 방법 (0) | 2022.03.21 |
[텐서플로우] 모델 summary param 의미 (0) | 2022.03.20 |
[인공지능] 텐서플로우 - 1에서 10까지 예측 모델 구하기(선형회귀) (0) | 2022.03.20 |
이 글을 공유하기