일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 세그먼트 트리
- dropout
- 우선 순위 큐
- 백트래킹
- 크루스칼
- 문자열
- dfs
- 자바스크립트
- 조합론
- lazy propagation
- NEXT
- 미래는_현재와_과거로
- back propagation
- object detection
- 가끔은_말로
- BFS
- 플로이드 와샬
- 회고록
- pytorch
- 알고리즘
- Overfitting
- c++
- 2023
- 다익스트라
- DP
- 너비 우선 탐색
- 가끔은 말로
- tensorflow
- 분할 정복
- 이분 탐색
- Today
- Total
목록전체 글 (562)
Doby's Lab
🤔 Problem오랜만에 PyTorch 관련 글입니다. 최근에는 Generative Model 쪽을 공부하면서 DDPM을 구현하다가 PyTorch의 새로운 기능을 발견했는데요. 바로 오늘 글의 주제가 되는 self.register_buffer()입니다. 본 포스트는 예전에 작성한 포스트들 중에 'nn.Parameter(), 이걸 써야 하는 이유가 뭘까? (tensor와 명백하게 다른 점)'라는 포스트의 후속 편이 되기도 합니다. 이전 포스트의 내용을 간략하게 리뷰해 보면 '모델 내에서 단순히 torch.tensor()를 통해 선언한 텐서는 학습의 대상이 되지 못하고, 이를 명확하게 모델 내 학습을 하는 파라미터로 정의하기 위해서는 nn.Parameter()로 감싸서 추가적으로 선언해야 한다.'라는 내..
한 해가 지났다. 벌써 블로그의 4번째 회고를 할 때가 되었다. 난 가끔 이 회고록을 적는 순간을 기다리면서, 회고록에 들어갈 내용들을 다른 곳에 적어두고는 했다. '이번 해는 이렇게 기억되었으면 좋겠다'는 마음들이 불쑥 튀어나올 때마다 그랬다. 그 모든 글들을 이곳에 기록하여 많은 기억들이 담긴 상태로 두고 싶다만, 그 모든 글들을 다시 가공하여 회고록에 남기기에는 부담이 크다. 회고록은 마음 편히 쓰고 싶다. 오로지 지금 현재의 시점에서 기억하는 2024년을 돌이켜보며, 이전에 끄적인 글들은 참고 정도만 하려고 한다. 2023년 회고록에서는 월별로 했었던 일들, 일어났던 일들을 정리해서 회고를 진행했었다. 이번에는 조금 틀을 무너뜨려서 올해 초반부터 기억하는 것들을 차례로 회고하고자 한다. 3번..
✅ Intro오랜만에 글을 적습니다. 종강한 지 둘째 날에서 셋째 날로 넘어가는 밤에 글을 적고 있네요. 이번에도 새로운 연구를 해보았답니다. 항상 연구가 끝나면 아쉬움들이 남습니다. 이번 연구도 그렇고요. 하지만, 개인적인 목적을 달성함에 있어서는 많은 걸 느끼고 만족했던 연구였습니다. 그래서, 모든 프로젝트의 끝은 회고라고 생각하기에 이번에도 회고를 준비해 봤습니다. 이번에 진행한 프로젝트는 지금껏 해왔던 연구들과 다소 결이 다르답니다. 의도치 않게(?) 과거의 프로젝트들은 전부 Computer Vision에서 다루는 Task가 전부였습니다. Classification, Semantic Segmentation, Object Detection... 여기까지만 보면 저는 Computer Vision 하..
✅ Introduction많은 사람들이 AI를 공부하면서 모델을 학습시킬 수 있는 능력들을 갖추었지만, 개인 GPU를 보유하고 있는 경우는 많이 없습니다. 이에 대한 해결책으로 Google의 Colab을 많이 사용합니다. 하지만, Colab 자체가 본질적으로는 가상 머신이다 보니 개인 컴퓨터에 GPU가 있는 환경과 다른 부분들이 있습니다. 다시 말해서, 모델 학습을 시키는 작업을 할 때, 추가적인 작업들을 필요로 합니다. 그래서, 이러한 추가적인 작업들에 대해 지난 경험들을 바탕으로 얻은 팁들을 다루어보고자 합니다. 정리하고자 하는 팁들은 새로운 작업들을 뜻하는 것은 아니고, 기존 작업들을 더 효율적으로 처리할 수 있는 방법들입니다. GPU를 갖고 있는 일반적인 환경이라면 작업을 수행하는 소스 코드, 데..
날이 갈수록 내가 외로움을 많이 느끼는 게 스스로 보였다. 작년에 나는 이렇게까지 외로움을 느끼지 않았었다. 왜 외로움을 느낄까. 물리적으로 보이는 건 혼자 있는 시간들이 더 많아졌다. 그리고, 공부하고 있는 분야들이 조금 더 지엽적인 분야가 되면서 얘기를 나눌 수 있는 사람들이 점점 줄어든다. 그런데, ‘내가 원래 이런 상황에서 외로움을 느끼는 사람이었나’라는 의문이 든다. 왜냐하면, 작년에 비해서 이런 시간들의 농도가 조금 더 짙어진 것일 뿐, 늘 이렇게 살아왔지 않았던가. 그러면, 문제를 다시 정의해 볼 수 있다. 늘 같은 시간들을 보내왔는데 외로움을 느끼는 이유가 무엇일까. 이 단어가 떠오르기까지 많은 경우들을 생각해 봤다. 그런데, 좀처럼 떠오르지 않다가 문득 학부연구생 첫 미팅 때가 스쳐 지나..
🤔 Problem모델을 학습하다가 이상하게 스케줄러에 대한 출력(Learning Rate에 대한 변경 출력)이 없어서 이에 대해 verbose를 True로 바꿔주려고 작업할 내용을 확인하기 위해 공식 문서를 들어가 봤다가 아래 내용을 확인했습니다.😀 Solution이제는 스케줄러에 대해서 verbose argument를 지원하지 않겠다는 내용이었습니다. 하지만, 스케줄러에 대한 메서드 get_last_lr()을 사용해 보라고 합니다. 이 메서드는 스케줄러가 마지막으로 계산한 Learning Rate를 출력하며, 이는 '현재 에포크에서 어떠한 Learning Rate로 학습을 진행하게 되는가'를 의미합니다. 그래서, 아래 내용으로 잘 확인이 되는지를 실험하기 위해 간단한 코드를 만들어줬습니다. 매 에포..
🤔 Problem몇 달 전부터 아나콘다에서 독립적인 작업 세팅을 추구하고 있어서, 시간이 날 때마다 세팅을 바꿔가는 과정을 겪고 있었습니다. 그리고, 이제야 완전히 독립된 작업 세팅이 만들어진 거 같아 아나콘다를 삭제하고, 그와 관련된 마지막 이슈를 정리하고자 합니다. 우선, venv를 통해서 가상 환경을 만들어 작업을 해오던 입장이었는데 아나콘다(아나콘다 내부의 파이썬 포함)를 완전히 삭제하고, 파이썬을 재설치해서 환경 변수까지 다시 세팅을 해주었지만, 삭제 이전의 가상 환경들은 모두 이전 아나콘다의 파이썬을 찾는 게 문제점이었습니다. (파이썬 파일을 실행시키면, 아래와 같은 오류가 발생합니다.)python test.py>>> No Python at '"C:\Users\user\anaconda3\py..
🤔 Problem작업을 하다가 DataLoader를 선언하는 코드 부분에서 처음 보는 Argument가 있었습니다. 이 Argument에 대해서 공부를 하면서 '이건 언젠가 유용하게 쓰일 기능이다!'라고 판단이 들어 글을 기록하게 되었습니다. 우리는 대부분 모델에 학습을 시킬 때, 각 샘플의 shape이 거의 다 같도록 전처리를 해서 학습을 시키기 때문에 사실 이 기능이 흔하게 쓰이지는 않을 것입니다. 하지만, 특수한 경우에는 각 데이터 샘플의 shape이 똑같이 처리될 수 없는 경우들이 있습니다. 예를 들어, Object Detection에 관한 프로젝트를 한다고 가정하면, 각 이미지에 대해 Bounding Box의 수가 모두 같나요? 거의 대부분 그렇지는 않습니다. 이러한 상황에 대해서 하나의 데이..