티스토리 뷰

728x90

 

이것도 YOLOv5를 돌리다가 난 에러

RuntimeError: result type Float can't be cast to the desired output type long int

 

해당 에러를 보고 처음에, 이 에러가 난 코드를 계속 고쳤다. float 타입에서 long int 타입으로 캐스팅을 하려니까 발생한 오류라서, long() 호출 전 타입을 변경시키려고 총 5번 정도의 코드를 변경해서 시도했는데 모두 실패하였다.

 

결국 구글링을 해보니까 욜로를 쓰는 사람들에게서 나는 오류로 공통의 글이 쏟아졌다.

 

해결 방법은

https://github.com/ultralytics/yolov5/issues/8405 

이 링크에 자세히 나오는데, 나는 docker build를 하지 않았기에 모델에 맞는 패키지 및 설치 파일을 일일히 설치해주었고, torch 버전 오류일 거라고 짐작만 했다. 욜로에는 1.7 이상만 쓰면 된다고 하는데, 나는 1.13이라서 버전 수정이 할 필요가 없어 보이지만 결국은 버전을 변경해주니 쉽게 해결되었다.

 

저기서 맞는 방법을 다 시도해보시길!

 

 

날 도와주신 분의 해결 방법

 

나는 가상환경을 만들어서 실행 중이었어서 아래 명령어로 버전을 전부 저거에 맞게 conda로 재설치 해주었다.

 

conda install pytorch==1.11 torchvision==0.12 torchtext==0.12 torchaudio==0.11 -c pytorch

 

가상환경은 create로 만든 다음에, activate로 실행시켜주면 된다.

conda create -n {가상환경 이름}
conda activate {가상환경 이름}

 

 

그럼 끝!

728x90
댓글