본문 바로가기

머신러닝&딥러닝6

YOLOv8 prediction time : OpenCV::dnn vs. TensorRT YOLOv8 소개글을 보면 정확도가 개선되었고 속도가 빨라졌다고 한다. 왼쪽의 그래프는 정확도가 개선되었다는 것이고, 테스트 해 본 결과 v5에 비해 개선된 것 같다. 속도 개선을 나타내는 오른쪽 그래프에서 TensorRT를 사용하면 n 모델에서 1ms까지 줄일 수 있다고 나와 있다. TensorRT가 뭐하는 것이길래 s 모델이기는 하지만 OpenCV::dnn 모듈에 cuda까지 사용해도 60ms 정도로 밖에는 시간을 줄일 수 없어서 궁금했다. (테스트 환경이 구형인 점도 한 몫 했을 것 같다.) 찾아보니 TensorRT는 NVIDIA에서 관리하는 deep learning inference open source라고 한다. (링크1)(링크2)(링크3) 스테레오 비전과 YOLOv8을 사용한 거리 추정을 만들.. 2023. 4. 10.
Windows 10, GTX 1660Ti에서 YOLOv8 train 방법, 설치 순서 GTX 1660Ti에서 최신버전의 pytorch에서 정상적으로 동작하지 않는다.(관련글) cuda 10.2에서 정상동작 하는데 문제가 없는 버전의 설치 순서이다. 물론, 최신의 GPU가 있다면 최신의 버전으로 설치해도 문제가 되지 않을 것 같다. pytorch, onnxruntime, tensorrt, opencv에서 cuda, cudnn을 사용하는 부분은 모두 GPU와 관련이 있다. 1. windows 페이징 파일 확장 (참고글) windows 기본 페이징 파일 크기로 YOLO train을 동작하면 메모리 파일의 크기가 작다는 오류 메시지가 나오면서 train이 안된다. 고급시스템 설정 -> 시스템 속성 -> 성능 설정 -> 성능 옵션 -> 고급 -> 가상 메모리 -> 사용자 크기 지정의 크기를 변경해.. 2023. 4. 10.
epoch과 batch size YOLOv5 inference에서 인식할 만한 경우에도 인식하지 못하는 경우가 있어서, 인식률을 높이기 위해 epoch을 200으로 train 한 모델 파일로 인식 테스트를 했었던 적이 있었다. 결과는 epoch 수를 높인 것에 비해서 인식률은 별 달리 오르지 않았다. OpenVINO를 사용하려고 Windows를 밀고 새로 설치하고 YOLO 테스트 하는 과정에서, GPU 메모리가 남아서 batch size를 늘려봤다. 결과는 epoch=200, batch=16보다 epoch=5, batch=32의 인식이 더 잘 됐다. YOLO에서 말하는 confidence threshold는 epoch=200, batch=16일 때 더 높았고, 인식률은 epoch=5, batch size=32가 더 좋았다. 이제 시작이.. 2023. 4. 10.
Pytorch + GTX1660, GTX1660Ti torch.float16 issue CUDA 11.6 + cuDNN 8.4 설치 후 tensor flow로 MNIST 손글씨의 학습, 추론이 정상적으로 동작했다. 하지만 YOLOv5 테스트하는 과정에서 문제를 만났다. (아마 MNIST가 fp16을 사용하지 않은 코드인 것 같다.) 처음 YOLOv5를 돌렸을 때는 CPU에 비해서 학습 속도도 빠르고, colab에서 돌리는 시간만큼 학습 시간이 걸려서 제대로 학습이 된 줄 알았다. (테스트 당시 colab은 tesla k80) 추론에 문제가 있는 줄 알고 소스 디버깅을 시도했는데 별 이상이 없어 보였다. 그래서 colab으로 동일 model, dataset으로 학습시켜서 학습 데이터만 다운로드해서 로컬에서 추론 테스트를 해 보니 정상적으로 동작했다. -> 학습에 문제가 있는 게 확정이다. 로.. 2023. 4. 10.
장치별 상대 학습 속도. GPU GPU 달린 중고 게이밍노트북으로 기변을 하고 동일한 데이터셋으로 테스트를 해 봤다. 테스트환경 CPU : i7-10750H RAM : 16GB GPU : GTX 1660Ti Windows 11 Visual Studio 2019 Community Anaconda 3 CUDA 11.6 update2 cnDNN 8.4 머신러닝 학습은 메모리가 많이 필요한지, 페이징 파일 크기 확대가 필요했다. 그냥 돌리면 학습 단계에서 가상 메모리 부족으로 안 돌아가는데, 시스템 고급 설정->페이지 파일 크기 확대해 바꿔줘야 하는 게 있다. https://bskyvision.com/799 CUDA 7.x 버전 사용할때는 CUDA 버전에 맞춰서 그래픽카드 드라이버 버전도 맞춰줘야 해서 그래픽 카드 버전도 최신버전이 아니라 C.. 2023. 4. 10.
장치별 상대 학습 속도 Google colab을 보니 하드웨어 가속을 선택할 수 있어서, 장치별 상대 속도가 궁금했다. 테스트 환경 Windows 11 Visual Studion 2022 Community Google colab Surface Pro 7 데이터셋 MNIST 손글씨 숫자 테스트 결과(local GPU는 예상) local GPU + jupyter > local GPU + VS > colab GPU >>> local CPU + jupyter > local CPU + VS > colab TPU GPU가 있다면... 서피스 프로7에는 GPU가 없어서 테스트를 하지 못했지만, 어느 정도 이상의 GPU가 달린 노트북이나 데스크탑이 있다면, local GPU + jupyter notebook에서 돌리는 게 제일 빠를 것 같다.. 2023. 4. 10.