YOLOv8 Concrete Crack Detection using Instance Segmentation #1
- About Building a Training Environments
시작
2학년 겨울 방학 기간에 공부했던 한빛미디어의 ‘혼공머신’을 끝내고 자신감 있게 시작한 프로젝트이다(물론, 혼공머신은 txt 기반 머신러닝 책이다.. ㅋㅋ).
여전히 최종 완성은 아니지만 모델에서 가시적인 성과가 꽤나 나온 상태이기에, 천천히 그간의 워크 플로우를 써보려 한다.
Environments
OS: Windows 10
Mainboard: ASRock B760M Pro RS
BIOS: 3.04
Processor: 13th Gen Intel(R) Core(TM) i5-13500(20 CPUs), ~2.5GHZz
Memory: 16GB
VGA: NVIDIA Gefore RTX 4600 8GB
GPU Settings
GPU는 행렬 연산에 강점이 있어서 AI 분야에서도 컴퓨팅 가속기로써 많이 사용되고 있다. 여태 늘 맥북(2020 인텔)으로 코딩을 해오던 나로서는 지금까지 GPU를 이용한 학습 훈련을 진행한 적은 없었는데(10번의 에포크가 5시간씩 걸리던 나,,), 이번에 자취방에 RTX 4060을 맞추게 되어 학습에 GPU 사용을 시도해 보았다.
GPU 환경 세팅에서 기본적으로 설치해야 할 것은 아래 네 가지이다.
- Nvidia graphic driver
- CUDA Tool Kit
- cuDNN
- PyTorch
코딩을 할 때면 제일 스트레스를 받는 부분은 늘 설정인 만큼, 생각 없이 인터넷 글을 따라가기 보다는 천천히 구조를 이해하면서 따라가는 편이 결국에 더 빨랐다. 그렇지 않았을 때에는 항상 마지막에 가서 버전 충돌로 다시 다 다운받고는 했던 기억이,,;;
- VGA 확인 가장 먼저 해야할 것은 자신이 사용하고 있는 데스크탑의 VGA 모델명이 무엇인지, 관련된 드라이버와 소프트웨어의 지원 버전은 무엇인지에 대한 정보를 수집하는 것이다. 이를 확인하는 방법에는 원하는 정보가 무엇이냐에 따라서 여러 방법이 있는데, 나는 가장 먼저 컴퓨터 사양을 확인할 때 내가 일반적으로 사용하고 있는 방법인 DirectX 진단 도구를 이용해 보았다.
xx
VGA 확인을 통해 얻어야 할 정보는 VGA 모델명과 그것이 지원하는 CUDA Tool Kit의 최상위 버전이다. 하지만 위 사진을 보다시피 DirectX를 통해서는 이를 알 수 없었다.
다른 방법을 시도해 보자. 키보드의 윈도우 키를 누른 후 “cmd”를 입력하여 명령 프롬프트에 연결 후 아래의 명령어를 입력했다.
$ nvidia-smi
위 화면에서 노란색으로 색칠한 것 중 우상단의 ‘CUDA Version’에서 현재 데스크탑에 장착된 VGA가 지원하는 ‘CUDA Tool Kit’의 최고 버전이 무엇인지를, 좌하단의 그것에서 테스크탑에 장착된 VGA의 모델명을 확인할 수 있었다.
이제 설치를 시작해 보자!
- Nvidia Graphic Driver
https://www.nvidia.co.kr/Download/index.aspx?lang=kr[엔비디아 공식 드라이버 홈페이지]
위 링크에 접속해서
확인한 VGA 모델명에 맞춰 드롭다운에서 선택 후 다운로드 하였다.
나의 경우는 위와 같은 드라이버를 다운로드 하였다.
그리고 검색 버튼을 누르면 나오는 위의 화면에서 드라이버를 설치해 주었다.
- CUDA Tool Kit
https://developer.nvidia.com/cuda_downloads
위 링크에 접속하여 CUDA Tool Kit를 다운해 주어야 하는데, 중요한 점은 현재 PyTorch의 경우 CUDA 12.3을 지원하는 버전이 릴리즈되지 않았기 때문에 CUDA 12.2를 다운받아 주어야 했다.
화면 하단의 릴리즈 아카이브를 들어가서 12.2 버전을 다운하였다.
- cuDNN
https://developer.nvidia.com/cudnn
위 링크에 접속하면 아래 화면과 같이 뜰 것이다.
다운로드 버튼을 누르면 아래와 같은 로그인 화면이 뜨는데, 로그인하면 다운이 된다. 계정이 없다면 만들어 보자.
- cuDNN 파일 복사
cuDNN을 설치하고 압축 파일을 풀어 모든 파일을 아래 경로에 첨부하되 덮어쓰기를 해준다.
C:\Program files\NVIDIA GPU Computing Toolkit\CUDA\your_cuda_version\
cf) your_cuda_version에 자신이 설치한 CUDA 버전이 뜰 것이다.
- PyTorch 설치
https://pytorch.org/get-started/locally/
위 링크에 접속을 하면 아래와 같은 화면이 뜰 것이다.
내가 선택한 것처럼 자신이 설치한 CUDA 버전과 일치하는 버전을 설치해 주면 된다. 나의 경우 아나콘다 가상환경을 사용하기 때문에 패키지를 Conda로 설정해 주고 아나콘다 프롬프트에서 설치를 진행하였다.
- 설치 확인
PyTorch 라이브러리에서는 CUDA의 사용 여부, GPU 가속기 사용 여부에 대하여 결과를 출력하는 함수를 지원한다.
torch.cuda.is_available()
torch.cuda.device_count()
나의 경우 학습 훈련 스크립트인 main.py의 최상단에 위 코드를 입력 후 아나콘다 프롬프트에서 실행하여 확인하였다. 결과는 아래 사진과 같다.
사진 속 콘솔 로그 중 위 코드의 리턴에 해당하는 것은 아래와 같았다.
Python-3.8.19 torch-2.1.1 CUDA:0 (NVIDIA GeForce RTX 4060, 8188MiB)
앞서 확인한 데스크탑의 VGA 모델이 정상적으로 잡힌 것을 확인할 수 있다. 멀티 GPU의 경우 0, 1, 2, 3의 숫자를 통해 개별적으로 식별된다고 한다.
torch.cuda.is_available()
위 함수에서 GPU가 정상적으로 인식되지 않았다면, 아래 사진과 같이 False 불린 값을 리턴한다
여러 인터넷 블로그들 보고 대충 따라하다가 한참 걸렸는데 독스 보고 따라가니 결국 한 번에 성공!
역시 정도(正道)만이 살 길이다.
## Preview
다음 게시글은 데이터 셋 준비에 대한 내용을 담고, 추후의 게시글에는 구체적인 학습 환경과 학습 결과, 모델을 이용한 예측까지 다뤄보고자 한다.
Profile
Seong Hun KIM
Student
Dept. of Computer Science Engineering | Yeungnam University, Repulic of Korea
Phone 010 - 6685 - 1140
Mail tgh7544@naver.com
LinkTree https://linktr.ee/HoonC_corgi