어제 밤에 한 일: 코딩마스터 예습, 수요일 스터디 준비 조금, 오늘 스터디 준비 조금
오늘은 어제 배운 텐서플로우2를 이용하여 API 모델 만들는 것을 복습했다. 어제 잠시 스터디 노션 페이지에 가서 보니 GradientTape에 대해 나왔길래 블로그를 보았으나 이해가 잘 안 되어서 유튜브를 보았었다. 말로 설명을 들으니 개념이 조금 이해되었다.
model.fit()이라는 부분을 그냥 쓰기만 했었는데 이 부분이 CS231n에서 배운 forward pass와 backpropagation과 연관된 것이라는 것을 알게 되었다. 강의 시간에 손으로 계산했던 것을 GradientTape을 통해서 하면 알아서 계산하고 그 값을 Tape에 저장을 해 주어 그 값들을 사용할 수 있다. 반면 model.fit()의 경우는 그 값들을 저장하지 않고 결과만 보여준다. 그러나 정확한 사용 방법은 더 공부를 해야할 것 같다.
혼자서 했다면 그냥 넘어갔을 부분인데 잘하는 분들과 같이 공부하니 꼼꼼하게 보게 된다. 내일은 객체지향프로그램에 대해서 배우는 날이다. 어제 조금 하다가 피곤해서 잤기 때문에 나머지 부분을 다 해야 한다. 오늘 보니 공부할 방향이 더 구체적으로 나왔다. 스터디장이신 왕언니는 언제 다 그런걸 하는걸까?
오늘의 노드는 아이폰에 있는 인물모드 사진을 텐서플로우를 사용해서 만드는 것이었다. 사전학습된 모델을 가져다가 하는 것이라 학습도 하지 않았고 쉽게 따라할 수 있었다. 그러나 이해하는 것은 다른 문제였다. 코드가 길기도 하고, 이해도 잘 되지 않아서 시간이 조금 지체되었다. 결국 포기하고 따라하기만 했다.
프로젝트에는 3단계가 있는데, 1단계는 생각보다 빨리 끝냈고, 2단계는 그림판을 사용하는 것이 익숙하지 않아서 조금 걸렸다. 문제는 3단계이다. 사진에서 사람 객체만 잘라내고, 블러 처리한 배경과 합치는 것인데, 객체를 자를 때 깔끔하게 잘리지 않는다는 문제점이 있다. 경계선이 보이거나 머리카락 같은 부분이 잘린다거나 배경이 들어가는 등 여러 문제점들의 해결책을 찾는 것이 3단계이다. 해결책을 찾기 위해 읽어야 할 링크들이 많다. 한글로도 이해가 쉽지 않을 부분을 영어로 읽고 해석하라니. 한숨만 나온다.
3단계는 주말에 하던가 하고 이제 스터디 준비를 해야 한다. 프로젝트 9번째 것도 더 해봐야 하는데. 점수를 낮추는 것이 어렵다. 모델에 대한 이해가 필요한데 시간이 있을지 모르겠다. 안 되면 그냥 제출해야지 뭐.