Docker로 피트니스 AI 모델 구동하기 (2) - Error

Jiyeahhh·2021년 11월 17일
0

[Project] AI 홈트 앱

목록 보기
7/9

GPU 설정도 끝나고 이제 고지가 눈 앞이구나 했는데.. 그렇게 쉬울리가 없었다..
온갖 에러 파티에 정말 이렇게 하는 게 최선인걸까 하는 생각이 계속 들었다😭

우선 서버 비용 문제도 있고, 시간도 그렇고 할 수 있는데까지 해보고도 안 되면 다른 방법으로 모델을 만들어보기로 함.


Error 1. USB 에러

정말 치명적이지 않지만.. 얘만큼 귀찮은 게 없다..
이제 좀 제대로 하려고 하면 인식 실패 떠서 다시 연결하고, 가상 머신 실행하고, 서버 접속하고, docker 접속하고.. 귀찮은 것도 귀찮은 건데 이렇게 EC2 계속 들락날락해도 괜찮은 건가 하는 생각이 자꾸 들어서.. 😥
안 그래도 어제 팀원들한테 AWS 비용 메일가서 민망 머쓱 눈치 보이는데..

마음 같아선 vdi 파일 c드라이브로 옮기고 싶지만 이미 70GB나 잡아먹은 vdi 옮길 자리도 없고 그냥 귀찮고 눈치 보여도 참고 해야지 뭐 어쩌겠어 하하하


Error 2. ValueError

  • 오류 메시지
ValueError: num_samples should be a positive integer value, but got num_samples=0

구글링 해보니까 잘못된 경로 설정으로 모델이 훈련을 시작할 train data를 찾지 못해 발생하는 오류라고 한다.

1. 경로 수정

docker 이미지 안에 있는 모든 파일을 로컬로 옮겨 파이참에서 하나하나 코드 확인을 해보았다.

config.py

    ## directory
    # os.path.abspath(path) : 절대경로 반환
    # __file__ 은 Python 의 예약어로, 실행되는 스크립트 파일명
    # => config.py의 절대 경로 반환

    # cur_dir : ../workspace/sleek/main
    cur_dir = osp.dirname(os.path.abspath(__file__))
    # root_dir : ../workspace/sleek
    root_dir = osp.join(cur_dir, '..')
    # data_dir : ../workspace/sleek/data
    data_dir = osp.join(root_dir, 'data')
    # output_dir : ../workspace/sleek/output
    output_dir = osp.join(root_dir, 'output')
    # model_dir : ../workspace/sleek/output/model_dump
    model_dir = osp.join(output_dir, 'model_dump')
    # vis_dir : ../workspace/sleek/output/vis
    vis_dir = osp.join(output_dir, 'vis')
    # log_dir : ../workspace/sleek/output/log
    log_dir = osp.join(output_dir, 'log')
    # result_dir : ../workspace/sleek/output/result
    result_dir = osp.join(output_dir, 'result')
  • 이상한 점 발견 X

Sleek.py

여기서

self.data_path = osp.join('..', 'data', 'Sleek', 'data')

이 부분이 잘못 됐나 싶어서

self.data_path = osp.join(osp.dirname(os.path.abspath(__file__)), 'data')

이렇게 수정했다.

👉 ../data/Sleek/data ⇒ ../workspace/sleek/data/Sleek/data

그래도 똑같은 에러 발생


2. json 파일 추가

혹시 data 파일에 json 파일이 없어서 그런가 싶어서 로컬에서 또 라벨링 데이터 json 파일 하나 가져와서 넣어놨는데 그래도 에러..

분명 json 파일이 없는데 여기서 json 파일을 찾길래..

여튼 이렇게 해도 해결 X


3. python 버전 변경

설마설마하고 파이썬 버전 확인해보니까 3.6.4 버전이었나 아무튼 3.7.3 버전 아래였다..!

설치 과정은 새벽에 한숨 푹푹 쉬면서 하느라 캡쳐 생각조차 못했는데

위 두 글 참고해서 설치했다.

위 방법으로 똑같이 따라했는데도 python -V 하면 계속 이전 버전으로 떠서, 아나콘다 파이썬 버전을 바꾸는 방법으로 했는데 성공

conda install python=3.8.1

  • 그리고 다시 실행(python run_train.py)하니까 ValueError는 해결됨!

정말 파이썬 버전이 문제였을까....?ㅠ


Error3. ModuleError

해당 모듈을 설치해주면 될 거 같아서 아래와 같이 설치

pip install opencv-python
pip install matplotlib
pip install scipy tqdm
pip install tensorboard cython

그렇게 이제 진짜 되나? 성공인가? 해치웠나? 했는데..

다신 볼 일 없을 줄 알았던 ValueError....^^


하하하하하ㅏㅎ.....

이쯤되면 꼭 해결하고 말겠다.. 하는 오기도 들지만.. 서버 비용과 남은 시간이 눈에 아른아른거려서 지금은 보내줘야하는 게 맞는 거 같다..

이 와중에 또 usb 에러..^^


내가 AI 지식도 부족하고, 개발 경험은 더더욱 부족해서 쉬운 문제인데 너무 어렵게 생각하고 있나, 이것만 고치면 되는데 나만 모르는 건가, 하는 생각이 들긴하지만 3차 발표까지 한 달도 남지 않은 상황에서 계속 이 문제만 붙잡고 있는 건 정말 아니라는 건 알겠다..😢

그래도 이번 달 말까지는 서버 지원해주니까, 다른 방법으로 우선 모델 개발하고 시간이 남으면 다시 도전해봐야겠다!

꼭 이 방법만 있는 것도 아니고 너무 좌절하지말고 화이팅해보자..!

profile
람차람차

0개의 댓글

관련 채용 정보