본문 바로가기

전체 글192

[AI 부트캠프] DAY 131 - 파이널 프로젝트 22 [오늘의 일지] 프로젝트 - 이상치 제거 [상세 내용] 이상치 제거 - 지난 일지에서 언급했듯이 이번 프로젝트는 이미지 데이터를 가지고 학습을 하는 것을 베이스로 하고 있습니다. 그래서 제가 이상치라고 생각한 부분은 바운딩 박스가 완전히 범위를 벗어난 값들은 모두 이상치라고 생각했습니다. 그런 데이터를 EDA 해보고 처리 코드를 통해서 제거하는 과정을 정리해 보겠습니다. 범위의 기준 - 제가 생각한 범위는 기본 이미지 사이즈를 기준으로 바운딩 박스의 min 지점이 넘어가면서 너비와 높이 또한 음수가 아닌 양수를 가질 때는 무조건 이미지 밖에 바운딩 박스가 존재할 것이라고 판단했습니다. 결과는 아래와 같이 나왔는데 전체 200만 개가 넘는 데이터 중에서 이 정도면 많은 정도는 아니라고 생각했습니다. cou.. 2024. 1. 26.
[AI 부트캠프] DAY 130 - 파이널 프로젝트 21 [오늘의 일지] 프로젝트 - 데이터 로더 수정하기 [상세 내용] 데이터 로더 수정하기 - 이번 프로젝트를 진행하면서 지난 일지 중에서 데이터로더를 만들어서 정리했었던 적이 있었습니다. 그런데 학습을 진행하면서 프로젝트 데이터의 바운딩 박스에는 생각보다 문제점이 많다는 것을 알게 되었습니다. 이번 일지에서는 제가 발견했던 문제점에 대해서 정리하고 어떤 식으로 데이터 로더 코드를 수정했는지도 설명하겠습니다. 지난 데이터 처리 설명 - 제가 지난 일지에서는 YOLO의 데이터 형식에 맞게 범위를 정해줘서 그냥 최종적으로 0~1의 값만 만족하면 될 거라고 예측을 해서 아래와 같은 형태의 데이터 정체처리를 했었습니다. # 바운딩 박스 형태 # 데이터 처리 x_min, y_min = max(0, float(x)), .. 2024. 1. 25.
[AI 부트캠프] DAY 129 - 파이널 프로젝트 20 [오늘의 일지] 프로젝트 - 로컬에서 gpu 재설정 [상세 내용] 로컬에서 gpu 재설정 재설정 계기 - 지난 일지 중에서 로컬에서 gpu를 설정하는 방법에 대해서 정리한 적이 있습니다. 그런데 gpu를 이용해서 YOLOv8 모델을 돌리던 중에 업데이트 관련으로 경고 메시지가 뜬다는 것을 확인하게 되었습니다. 저는 지난 일지에서 온라인 후기에서 많은 사람들이 문제없이 사용하고 있는 cuda 버전을 선택해서 사용했는데 해당 cuda 버전이 오래된 버전이다 보니까 최신 torch 버전으로는 업데이트가 안 되는 버전이라는 것을 알게 되어서 다시 새로운 버전을 선택해서 업데이트를 하게 되었습니다. 지난 gpu 설정 정리는 아래의 링크로 남겨두겠습니다. [AI 부트캠프] DAY 123 - 파이널 프로젝트 14 [.. 2024. 1. 24.
[AI 부트캠프] DAY 128 - 파이널 프로젝트 19 [오늘의 일지] 프로젝트 - YOLOv8 성능 정리 [상세 내용] YOLOv8 성능 정리 - 지난주에 YOLOv8 모델의 성능을 확인해 보고자 몇 가지 실험을 했습니다. 그런데 따로 문서를 찾아보니 제가 속도를 중요시하며 실험을 했던 것보다 더 중요하게 봐야 할 부분이 있었습니다. 그 부분에 대해서 다시 정리하겠습니다. 이미지 사이즈와 성능 - 지난주에는 이미지 사이즈가 클수록 속도가 느리다고 정리했던 기억이 납니다. 이 부분이 크게 잘못되었다고 생각은 안 하지만 정정하자면 이미지 사이즈가 클수록 gpu의 vram을 많이 할당한다는 사실을 알게 되었습니다. 그러니 따지고 보면 gpu가 많은 vram을 할다하고 있다는 것은 속도면에서 조금 느려질 수 있다는 것이라고 판단했습니다. 지난주 결과는 링크로 남겨.. 2024. 1. 23.
[AI 부트캠프] DAY 127 - 파이널 프로젝트 18 [오늘의 일지] 프로젝트 - YOLOv8 모델 성능 비교 [상세 내용] YOLOv8 모델 성능 비교 - 오늘의 실험 주제는 YOLOv8 모델의 n, s, m, l , x로 가벼운 모델인 n부터 시작해서 무거운 모델인 x까지의 모델의 성능을 비교해 보려고 했습니다. 모델의 알파벳의 의미는 n은 nano, s는 small, m은 middle, l은 large, x는 xlarge를 뜻합니다. 사실 이번 주제는 실제로 ultralytics 홈페이지 문서에 가보면 나와있듯이 각 모델의 성능비교는 잘 정리되어 있는 것으로 확인했습니다. 그러나 직접 모델을 돌려보면서 진짜 그런지에 대해서 평가해 보면 좋을 거 같아서 이번 실험을 진행게 되었습니다. YOLOv8 실시간 물체 감지기의 최신 버전인 YOLOv8 의 놀라운.. 2024. 1. 20.
[AI 부트캠프] DAY 126 - 파이널 프로젝트 17 [오늘의 일지] 프로젝트 - 학습 모델 성능 비교 [상세 내용] 학습 모델 성능 비교 - 우선 더 좋은 gpu 환경인 원격 서버에서 돌리기 전에 로컬 환경에서 소수의 데이터로 학습을 돌려보는 과정을 진행해 보았습니다. 클래스는 단일 클래스로서 이미지를 resize 하는 기능을 통해서 데이터를 덜 사용하는 방향으로 실험을 진행했습니다. 학습 배경 스펙 - 빠르게 학습을 돌려보기 위해서 colab 환경의 T4와 V100 gpu를 선택하였습니다. YOLOv8 모델 자체가 디폴트값이 gpu 환경을 되어 있었기 때문에 컴퓨팅 단위가 A100보다는 적게 사용되는 T4를 사용하다가 너무 느려서 V100으로 교체해서 학습을 돌려보았습니다. resize 실험 - 이번 실험의 다른 조건은 모두 동일한 환경에서 진행했습니다.. 2024. 1. 19.
[AI 부트캠프] DAY 125 - 파이널 프로젝트 16 [오늘의 일지] 프로젝트 - 원격 서버를 VSCode에 연결하기 [상세 내용] 원격 서버를 VSCode에 연결하기 - 오늘 정리할 내용은 제목에서 보이듯이 원격 서버 환경을 vscode로 가져와서 로컬과 똑같은 느낌으로 작업을 하는 것입니다. 그래서 정리할 게 생각보다 적을 거 같습니다. VSCode 내에서 확장 탭 다운로드 - 원격서버에 연결하기 위해서 VSCode 내에서 'Remote Development'를 검색해서 다운로드를 해주시면 됩니다. F1키를 누르고 원격 주소 기입하고 암호 입력 - 어제 일지에서 정리했던 리눅스 환경에서 ssh 명령어에서 ssh 만 빼고 [userid]@[address:ip]:[Port] 이런 식으로 아래와 같이 입력란이 뜨면 입력해 주고 서버에 맞는 암호를 입력해 주면.. 2024. 1. 18.
[AI 부트캠프] DAY 124 - 파이널 프로젝트 15 [오늘의 일지] 프로젝트 - 원격 서버를 위한 리눅스 명령어 정리 [상세 내용] 원격 서버를 위한 리눅스 명령어 정리 - 이번 기업과 협업 프로젝트에서는 기업에서 gpu 사용을 위해서 원격 서버를 제공해 주었습니다. 원격 서버는 리눅스 환경인데 현재 사용하고 있는 리눅스 명령어에 대해서 간단하게 정리해 보도록 하겠습니다. 정리 목차 - 기본적인 리눅스 명령어 - 원격 서버 접속하기 - 원격 서버로 데이터 보내기 기본 리눅스 명령어 정리 # pwd (Print Working Directory):현재 작업 중인 디렉터리의 경로를 출력합니다. pwd # ls (List):현재 디렉터리의 파일 및 폴더 목록을 보여줍니다. ls # cd (Change Directory):디렉터리를 변경합니다. cd [디렉터리 경.. 2024. 1. 17.
[AI 부트캠프] DAY 123 - 파이널 프로젝트 14 [오늘의 일지] 프로젝트 - 로컬 환경에서 gpu 설정하기 [상세 내용] 로컬 환경에서 gpu 설정하기 - 지난 일지에서 언급을 했듯이 제가 쓰는 노트북 환경에서 여러 가지 드라이버를 설치하고도 gpu는 확인이 되는데 pytorch가 gpu를 가져오지 못하는 상황에 대해서 정리해 보려고 합니다. 로컬 환경 (본인 노트북 환경) - cpu는 라이젠 5000번 때입니다. - 그래픽 카드는 rtx 3070 laptop용입니다. - cuda 버전 11.3입니다. - 파이썬 환경은 3.9와 3.10에서 모두 돌아가는 것을 확인했습니다. 환경 설정 요약 - gpu 드라이버 설치 (처음에 해도 되고 나중에 해도 되고 기존에 설치되어 있다면 안 해도 될 거 같습니다.) - anaconda 환경 구축 (기존 로컬에 해도.. 2024. 1. 16.
[AI 부트캠프] DAY 122 - 파이널 프로젝트 13 [오늘의 일지] 프로젝트 - YOLO 모델 소규모 데이터 학습 성공 [상세 내용] YOLO 모델 소규모 데이터 학습 성공 - 어제 데이터셋을 구성한 뒤에 gpu 문제로 로컬에서 학습을 돌리는 것을 실패하고 gpu 세팅을 다시 하려고 했지만 모델 학습을 성공적으로 한 사이클 시켜보는 것이 더 중요하다고 생각해서 colab 환경에서 만들어진 데이터를 옮겨서 학습을 계속해서 시도했습니다. 학습을 시도하는 동안에 여러 가지 문제점이 또 발생했고 부분적으로 수정해 가면서 한 사이클 학습에 성공한 과정을 정리해 보겠습니다. bbox 좌표의 문제점 - 어제 발견했던 bbox 좌표 말고도 학습을 시도할수록 더 이상한 좌표값들을 발견했습니다. 이런 좌표값들은 어쩔 수없지만 지정 범위인 0~1의 값만 만족할 수 있도록 설.. 2024. 1. 13.
반응형