Deep learning/Studying

Tensorflow 2.0 prediction model.predict vs model( .. , training =False) 차이

비비이잉 2021. 10. 22. 09:51
반응형

서버에서 도커 열고 도커이미지로 컨테이너 생성해서 안에있는 이미지들을 예측하는 프로세스다. 

근데 도커를 여는데에만 약 15초가 걸리고 모델 로드는 약 4초가 걸렸다.

왼쪽은 각 배치 수행시간 오른쪽은 누적 수행시간이다. 

여기서 문제는 첫번째 배치의 수행시간이 첫번째사진에서는 약 78초 오른쪽 사진에서는 약 4초가 걸린다.

첫번째 배치를 열어줄때는 model.predict코드를 보면 

make_predict_fucnction()코드 때문에 시간이 오래 걸릴 수 있지만 마지막 배치의 경우 어떠한 이유때문에 수행시간의 차이가 있는지 더 찾아봐야 할 것 같다. 

 

 

1) model.predict(X)

ouput을 numpy로 변환

 

2) model(X, training = False)

ouput을 텐서플로 객체 그대로 출력 

 

테스트결과에는 차이가 없지만, tensorflow 2.4.1, ubuntu 20.04인 내 환경에서는 저렇게 두 가지의 방법에서 결과 차이가 있었다. 

 

https://github.com/tensorflow/tensorflow/issues/40261

 

model.predict is much slower on TF 2.1+ · Issue #40261 · tensorflow/tensorflow

System information OS Platform and Distribution (e.g., Linux Ubuntu 16.04): WIndows 10 and Ubuntu 18.04 TensorFlow installed from (source or binary): Binary with pip3 TensorFlow version (use comman...

github.com

 

반응형

'Deep learning > Studying' 카테고리의 다른 글

RESTFUL API 작성  (1) 2023.01.18
Ensemble - hard vote , soft vote  (0) 2021.11.01
deep learning ai  (0) 2021.09.13
Random Initialization이 필요한 이유  (0) 2021.09.10
Tensorflow Weight Initializer  (0) 2021.09.10