본문 바로가기

TIL 및 WIL/WIL (Week I Learned)

[WIL] 22.05.16 ~ 22.05.20 (머신러닝 강의, 사물인식 팀 프로젝트)

아직은 머신러닝과 친해지는 중..

 

지난주에 이어 머신러닝에 대해 공부했습니다.

강의를 보고.. 다시 돌려보고.. 다음 강의 보고.. 강의들 다시 돌려보고.. 하면서 계속 반복하며 공부했었습니다.

 

머신러닝 포스팅 글

 

강의를 보며 공부한 것들을 정리하면서 이해가 잘 되지 않던 부분들은 다시 영상을 보며 공부하고 반복했습니다.

블로그에 포스팅된 내용에는 개념들에 대해 정리만 해둔 편이라 실습 관련된 내용들은 포함되지 않았습니다.

Colab에는 실습한 내용들을 저장해두면서 공부했기에 모르는 것이 있으면 그때그때 찾아서 보는 편입니다.

 

최대한 이해하려고 노력했지만 그래도 아직은 많이 어려운 건 어쩔 수 없는 것 같습니다..

 

머신러닝 강의가 끝나고 나서 사물 인식 머신러닝 프로젝트가 이어지는데 앞서 했던 프로젝트들보다 어려울 것으로 예상이 되어서 많이 위축됐었습니다.

 

 

 

머신러닝 공부 끝! 이제는 프로젝트 시작!!

 

처음 프로젝트 내용을 마주했을 때 많이 어렵겠다..라고 생각했습니다.

이유는 앞서 진행한 머신러닝 강의들도 어려웠는데, 실제로 사물 인식 프로젝트를 만드려니 걱정이 앞섰던 것 같습니다.

 

그래도 팀원들이랑 함께 와이어프레임과 API 설계, 역할 분담 등등.. 여러 가지를 정하려고 했지만 처음에는 막상 무엇을 어떻게 정해야 할까.. 하고 고민도 되게 많이 했습니다.

 

첫날에는 프로젝트로 무엇을 만들어볼지, 와이어프레임으로 참고할 것이 있는지, 역할 분담을 어떻게 해야 할지, 여러 가지로 상의를 한 뒤 급하게 마무리 지었습니다.

 

대략적으로만 정한 설정

 

첫날에 너무 부정확한 설계를 해서 그런지 설계한 것을 보고도 잘 이해가 되지 않았습니다.

그래서 주변의 피드백도 받으면서 팀원들과 다시 설계도 하면서 틀을 만들어갔습니다.

 

와이어프레임
아직은 어려운 API 설계

 

프로젝트를 진행하면서 시간 허비를 한 것이 많았기에 코드를 구현하는 데 있어 시간이 조금 촉박하다고 생각했었습니다.

그래서 팀원들과 함께 늦은 시간까지 계속해서 코드를 함께 만들어보고 협업하는 과정을 진행했습니다.

 

처음부터 pytorch를 사용하여 계속해서 모델을 만들어보려고 시도했고 오류를 계속 마주하면서 시간도 많이 보냈습니다.

 

머신러닝 Model

 

Model에 대해 오류도 많이 접하고, 해결하기도 많이 힘들어서 시간을 많이 보내니 프로젝트에 있어 다른 부분들이 걱정되기 시작했습니다.

그래서 로그인과 회원가입 부분 코드를 만들면서 머신러닝에만 집중하지 않고 다른 부분도 해결하면서 프로젝트를 만들어갔습니다.

 

로그인과 회원가입

 

이번 프로젝트에서는 flask blueprint를 이용하여 py 파일을 분리하고 프로젝트를 만들어 보는 것을 권장받았기에, blueprint 부분도 찾아보면서 파일을 분리하여 프로젝트를 만들었습니다.

 

처음에는 에러도 많이 나고 고전했지만, 하나하나 오류도 해결하면서 프로젝트를 진행했습니다.

에러 부분은 발생할 때마다 사진으로 남겨두면서 오류 해결 부분을 기억하는 것이 좋았지만, 에러가 발생했을 때 생각나지 않아서 오류 해결 지식을 남기지 못했다는 것이 아쉬웠습니다.

 

다음은 오류가 발생했을 때 해결한 부분의 일부입니다.

 

1) DLL load failed while importing _ssl: 지정된 모듈을 찾을 수 없습니다.

기존 Interpreter
Anaconda 가상 interpreter

 

이번에는 기존에 사용했던 Python Interpreter를 사용한 것이 아닌 Anaconda에서 가상의 Interpreter를 만들어서 사용했습니다.

그런데 _ssl 오류가 발생해서 다음과 같은 방법으로 오류를 해결했습니다.

 

기존 \AppData\Local\Programs\Python\Python3?\DLLs 위치에 있는 "libcrypto-1_1.dll" 파일과 "libssl-1_1.dll" 파일을 복사한 뒤 가상 환경의 Anaconda 폴더 안에 있는 \DLLs 안에 넣어줬습니다.

해당 파일들을 넣어주고 VSCode를 재실행해주니 정상적으로 실행됐습니다!

 

2) JWT: 'module' object has no attribute 'encode'

해당 사진은 jwt 오류를 해결하고 나타난 decode 오류

 

해당 jwt 관련 오류가 나왔을 때는 다음과 같이 해결했습니다.

pip install PyJWT와 pip install JWT를 둘 다 진행했을 때 생기는 오류였기에, 해당 두 라이브러리를 uninstall 해준 뒤 pip install PyJWT를 해주니까 해결되었습니다.

 

그리고 이후 나타난 AttributeError: 'str' object has no attribute 'decode' 오류는 다음과 같이 해결했습니다.

원래는 token = jwt.encode(payload, SECRET_KEY, algorithm='HS256').decode('utf-8')을 사용했지만, python3에서는 기본으로 utf-8을 주기 때문에 굳이 .decode('utf-8')를 적지 않아도 되기 때문에 해당 오류가 나타난 것이었습니다.

그래서 .decode('utf-8') 부분을 지워준 뒤 실행하니 정상적으로 실행이 됐습니다!

 

 

 

아직 시간은 남아있지만 촉박하다..
 

 

오류와 많이 싸우느라 시간을 지체했던 것일까, 프로젝트 진행 상황은 그리 좋은 편이 아닙니다..

이번 주말에는 푹 쉴 수 있을까.. 싶었지만 어림도 없는 것 같네요.

 

완성도도 부족하고 오류도 많이 접하고 있는 상황이니 주말에도 프로젝트 진행해보면서 완성도를 높여가야겠습니다.

저와 팀원들이 쉬는 날인 주말까지 고생할 것을 예상하니 다소 암울하긴 하지만, 어쩔 수 없는 결과라고 생각됩니다.

 

좋은 결과를 내길 바라며.. 힘내야겠습니다.