지난주 금요일부터 수업 끝나고 혼자서 공부하는 시간이 거의 없었다. 그 이유가 뭘까 생각해 봤는데, 우선은 3주간 공부하면서 지친 게 그 원인이었다. 3주간 평균 새벽 3시에 잤으니 피로가 누적될 만하다. 그렇지만 주말에 푹 쉬었는데도 오늘까지 공부가 안된 건 이상했다. 4번째 프로젝트가 안 풀려서 그런 건 아닐까 생각한다.
오늘은 사이킷런에 대해서 배웠다. 아이리스 품종 분류하는 것을 다시 한번 복습하는 것 같았다. 프로젝트에서 익숙해져서인지 그리 어렵지는 않았다. 그러나 오전에 집중을 잘 못 해서 생각보다 오래 걸렸다.
오늘의 내용은 지난주 배운 내용과 겹치는 부분이 있어서 초반에는 어렵지 않았다. 그러나 행렬 곱과 행렬 미분이 나오면서 머리가 아프기 시작했다. 분명 배웠을 텐데 기억이 안 나서 답답했다. 행렬 미분에 대해서 공부를 가볍게라도 해야할 것 같다.
풀잎스쿨 후반부에는 집중이 잘 안 되었다. 개인적으로 처리해야 할 일들, 행렬 미분이 안 풀린 것, 프로젝트 때문에 머리가 복잡한 것 등 여러 가지 이유가 있었던 것 같다. 오늘 안에 복습해야 하는데.
오늘은 CS231n은 쳐다보지도 못했다. 마음이 혼란스러우니 컴퓨터를 켜기도 싫어서 빈둥대기만 했다. 결국 자정이 다 되어서야 컴퓨터를 켜고 프로젝트를 시작했다. 퍼실님께서 위의 코드에서 뭔가 잘못되었을 것이라고 해서 다시 처음부터 썼지만, 결과는 같았다. 그러다가 에러 메시지를 자세히 보다 보니 입력 데이터가 문제라는 것을 발견했고, 거기서 더 자세히 보니 nvalidArgumentError: indices[64,21] = 10 is not in [0, 10) [[node sequential_1/embedding_2/embedding_lookup (defined at <ipython-input-12-4c00b4b45b45>:13) ]] [Op:__inference_train_function_3149]라는 부분을 발견해서 구글링했다. 깃헙에 누군가가 vocab_size를 늘려보라고 써놓아서 해보았더니 결국 vocab_size가 10,000이 되어서야 에러가 나지 않았다.
다시 코드를 보니 위의 모델들에는 이미 vocab_size가 10,000이었다. 바보같은 나. 이런 사소한 걸로 목요일부터 월요일까지 5일을 허비하다니. 다음부터는 에러 메시지가 복잡하다고 넘기지 않고 차근차근 읽고 파라미터에 더 신경을 써야겠다. 그랬다면 더 빨리 문제를 해결할 수 있을 텐데.
이제 문제는 해결했으니 드디어 프로젝트를 완성할 수 있게 되었다! (~˘▾˘)~ 얼른 끝내고 밀린 복습도 하고 CS231n 강의 포스팅도 수정해서 올려야겠다.
오늘의 날씨: 밤에 눈이 많이 왔다. 낮에는 그쳐서 다행이다.