본문 바로가기
Engineering/토치서브(Torchserve)

[Torchserve]'NoneType' object is not callable

by Hyen4110 2022. 11. 14.

새로운 서버에서 기존에 생성한 mar파일로
torchsere 실행 시, 다른 서버에서는 정상적으로 작동하였으나
특정 서버에서 Handler가 request마다 초기화 되어 'NoneType Error'가 발생함을 확인함

찾은 원인을 정리하자면 아래 2가지이다.

1. CUDA와 NVIDIA-driver의 설치 여부 및 호환성 문제

[확인 방법] torch.cuda.is_available() = False
[해결 방법] CUDA와 NVIDIA driver가 설치되어있는지, 서로 호환이 가능한지 확인

CUDA 확인 : nvcc -V

✔ NVIDIA driver 확인 : nvidia-smi

nvidia driver 에 맞는 CUDA는 10.2 인데(이미지),
실제 설치된 CUDA는 10.0이어서 호환성이 맞지않음!
기존 CUDA 10.0 를 지우고 10.2를 설치하여
torch.cuda.is_available() = True로 됨 확인
Nonetype 에러도 해결됨!

2. torchserve 버전 문제

✔ 문제의 버전 : 0.4.0
✔ 원인 파악 어려웠던 이유

: pip install 로 설치된 torchserve가 0.5.2여서
conda list상에서는 0.5.2 으로 표출됨
하지만 사실상 실행되는 torchserve는 0.4.0 였음

✔ 해결 방법
pip uninstall torchserve
이후 다시 conda install -c pytorch torchserve 진행
https://anaconda.org/pytorch/torchserve

 

Torchserve :: Anaconda.org

 

anaconda.org

 

댓글