사냥꾼의 IT 노트

TensorFlow를 이용한 YOLO v1 논문 구현 #10 - 리뷰 본문

YOLO

TensorFlow를 이용한 YOLO v1 논문 구현 #10 - 리뷰

가면 쓴 사냥꾼 2022. 7. 12. 11:13

인생 첫 논문 리뷰에, 처음 해보는 딥러닝 분야 개발이라 일주일 정도의 시간이 걸렸습니다. 이리 치이고 저리 치이다가 결국 완성하긴 했네요 .

첫 시작은 맥북 m1이었습니다. 작년에 산 따끈따끈한 랩탑이었기도 하고, 못해도 5년 이상은 써야할 장비기 때문에 중요했었죠. 근데 이게 큰 문제의 시작입니다.


내 발목을 잡은 cuda

일단 대부분의 딥러닝 개발은 파이썬으로 이루어지고, 거기서 수많은 모듈을 사용합니다. YOLO 개발에 쓰이는 대표적인 모델음 pytorch와 tensorflow가 있죠. 

pytorch에 관련된 자료가 더 많아서 이를 바탕으로 시작을 했는데, 웬걸 너무 복잡한 겁니다. 단순히 'conda install pytorch'로 끝나는 윈도우 환경과 달리 환경 변수 설정도 따로 해줘야 했습니다.

여기서 가장 큰 걸림돌이 된 것은 바로 cuda. cuda는 nvidia에서 만든 가상 명령어셋을 이용하게 해주는 소프트웨어인데, pytorch 이용에 큰 부분을 차지합니다. 문제는 제 맥북이 nvidia gpu도 아니라 cuda를 지원하지 않는 것입니다. 그래서 tensorflow를 이용하기로 하고 코드를 싹 다 고치기 시작합니다.


tensorflow도 안돼 ..

일단 m1환경에서 tensorflow를 사용하려면 상당히 복잡한 절차를 거쳐야 합니다. 자세한 건 밑의 링크를 참조하시길. 제가 실제로 많이 참고한 글입니다.

https://gmnam.tistory.com/271

 

[M1 맥북] GPU에서 tensorflow 실행하기 (tensorflow 2.5 설치)

2021.04.27 - [Programming/Tips] - [Arm64] M1 맥북에 tensorflow 2.4 설치하기 (conda 환경) 2021.10.16 - [Programming/Tips] - M1 맥북에 native PyTorch 설치하기 (conda 환경) 목차 지난 포스팅에서 M1 맥..

gmnam.tistory.com

tensorflow 설치까진 어찌저찌 완료됐는데 웬걸, 이상한 오류가 나오면서 코드가 실행되지 않습니다.

Failed to get CPU frequency: 0 Hz

위와 같이 abort 오류도 나오고...대충 해석하자면 다음과 같은 오류였습니다.

제가 사용하는 m1의 gpu를 잡지 못해 tensorflow 모듈을 제대로 실행하지 못하는 것이었습니다.

이틀동안 인터넷을 싹 다 뒤져봐도 명확한 해결법을 찾지는 못했고 결국 구현 환경 자체를 윈도우로 바꿔줬습니다.


윈도우에선 잘만 된다 ...

정말 윈도우로만 바꿔줬는데도 실행이 잘 되더군요.

epoch별로 loss와 train이 잘되는 모습이었습니다.


총평

파이썬은 되도록이면 윈도우 환경에서 개발하자. 이제 가장 먼저 느꼈던 점 같네요. 맥북에서 구현하려고 거진 일주일을 쌩고생한 걸 보면 제가 멍청한 걸 수도 있습니다. 아니 진작 윈도우에서 만들걸 ...

파이썬으로 간단한 코드 정도야 맥북에서도 원활하게 돌아가지만 조금만 깊이있게 들어가면 그게 안되는 것 같습니다. 

가장 큰 문제는 아무래도 gpu인듯. 자체 gpu 를 갖고 이게 7구성인 만큼 tensorflow에서 이를 잡지 못하는 것 같습니다. 맥북 에어에서만 해본거라 8구성인 프로에서는 어떨지 모르겠습니다. 만약에 바꾸게 된다면 바로 해볼듯..

아무튼 재밌지만은 않은 시간이었습니다. 원래 새로운 걸 개발하는 것에 재미를 많이 느끼는 편인데, 환경을 만드는데만 시간을 너무 많이 허비해버려 재미와 감동을 동시에 잃게 됐습니다..

다음번엔 yolo v2를 한번 만들어보겠습니다.


참고 문헌

https://github.com/solaris33/YOLO-v1-tf2