일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 호흡분석
- 게임개발
- V3
- 이터널리턴
- ctypes
- 언어모델
- 텐서플로우
- 논문리뷰
- ChatGPT
- 딜러닝
- 욜로
- pyqt5
- yolo
- 헬스케어
- 언리얼엔진
- TensorFlow
- NPY
- CycleGAN
- connx
- 딥러닝
- 프로그래머
- C언어
- 논문
- python
- 파워셀
- Detectron2
- 개발자
- 파이썬
- 리뷰
- 설치
- Today
- Total
사냥꾼의 IT 노트
TensorFlow를 이용한 YOLO v1 논문 구현 #10 - 리뷰 본문
인생 첫 논문 리뷰에, 처음 해보는 딥러닝 분야 개발이라 일주일 정도의 시간이 걸렸습니다. 이리 치이고 저리 치이다가 결국 완성하긴 했네요 .
첫 시작은 맥북 m1이었습니다. 작년에 산 따끈따끈한 랩탑이었기도 하고, 못해도 5년 이상은 써야할 장비기 때문에 중요했었죠. 근데 이게 큰 문제의 시작입니다.
내 발목을 잡은 cuda
일단 대부분의 딥러닝 개발은 파이썬으로 이루어지고, 거기서 수많은 모듈을 사용합니다. YOLO 개발에 쓰이는 대표적인 모델음 pytorch와 tensorflow가 있죠.
pytorch에 관련된 자료가 더 많아서 이를 바탕으로 시작을 했는데, 웬걸 너무 복잡한 겁니다. 단순히 'conda install pytorch'로 끝나는 윈도우 환경과 달리 환경 변수 설정도 따로 해줘야 했습니다.
여기서 가장 큰 걸림돌이 된 것은 바로 cuda. cuda는 nvidia에서 만든 가상 명령어셋을 이용하게 해주는 소프트웨어인데, pytorch 이용에 큰 부분을 차지합니다. 문제는 제 맥북이 nvidia gpu도 아니라 cuda를 지원하지 않는 것입니다. 그래서 tensorflow를 이용하기로 하고 코드를 싹 다 고치기 시작합니다.
tensorflow도 안돼 ..
일단 m1환경에서 tensorflow를 사용하려면 상당히 복잡한 절차를 거쳐야 합니다. 자세한 건 밑의 링크를 참조하시길. 제가 실제로 많이 참고한 글입니다.
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
'YOLO' 카테고리의 다른 글
Pytorch를 이용한 YOLO v3 논문 구현 #1 - 신경망 구조의 계층 생성 (22.10.04 수정) (0) | 2022.09.27 |
---|---|
Pytorch를 이용한 YOLO v3 논문 구현 #0 - YOLO 구조 파악하기 (0) | 2022.09.27 |
TensorFlow를 이용한 YOLO v1 논문 구현 #9 - 최종 실행 및 결과 확인 (0) | 2022.07.08 |
TensorFlow를 이용한 YOLO v1 논문 구현 #8 - evaluate.py (0) | 2022.07.08 |
TensorFlow를 이용한 YOLO v1 논문 구현 #7 - train.py (0) | 2022.07.08 |