일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 문자열
- 이분 탐색
- 분할 정복
- 우선 순위 큐
- pytorch
- 미래는_현재와_과거로
- Overfitting
- 조합론
- object detection
- 세그먼트 트리
- DP
- dropout
- 가끔은 말로
- 가끔은_말로
- 2023
- lazy propagation
- dfs
- 다익스트라
- 자바스크립트
- tensorflow
- 알고리즘
- NEXT
- c++
- 플로이드 와샬
- 회고록
- back propagation
- 크루스칼
- 백트래킹
- BFS
- 너비 우선 탐색
- Today
- Total
목록전체 글 (562)
Doby's Lab
✅ Intro LLaVA-Med를 공부하면서 Visual Encoder로 CLIP(Contrastive Language-Image Pre-training)이 사용되어 이번 기회에 공부를 해보았습니다. CLIP은 기존 Classification 방식에서 새로운 메커니즘을 제안했습니다. Classification은 수많은 데이터셋에서 라벨링 된 클래스로 분류하는 것이 일반적인 특징입니다. 하지만, 세상에는 여러 가지 사물이 존재하며, 이 사물 또한 어떠한 상태에 있냐에 따라 분류를 할 수 있는 범위는 셀 수 없을 정도로 많습니다. 예를 들어, '일반적인 자전거'와 '바퀴가 없는 자전거'라는 Task로 수많은 사물들이 더 디테일한 description을 원할 때, 단순한 Classification Task만으..
✅ Intro Computer Vision 관련 아키텍처가 발전함에 따라 Overfitting을 막기 위해 Batch Normalization, 혹은 Layer Normalization을 사용하는 추세입니다. 하지만, 이전에는 Dropout이 있었죠. Dropout은 어느샌가부터 마지막 fully-connected layer를 제외하고는 Computer Vision에서 잊혀 갔습니다. 이러한 이유에는 기존 Dropout은 Feature Map의 공간적인 특성을 고려하지 않는 부분에 있습니다. 픽셀 별로 랜덤 하게 Drop 시키는 경우를 생각해 보면 이해가 됩니다. Feature Map에서 고작 한 픽셀을 Drop 시킨다는 건 의미가 없을 수 있습니다. 하지만, 그림(c)과 같이 Feature Map의 특..
✅ Introduction ViT라는 아키텍처를 공부하다가 새로운 메커니즘을 접하게 되었습니다. 그 새로운 메커니즘은 이번 글의 주제인 Attention입니다. 아직 NLP 분야의 Task를 다루어본 경험이 없기 때문에 등장하게 된 정확한 배경은 잘 모르지만, '어떠한 작동 원리인가?', '왜 성능이 더 좋은가?', '수식이 의미는 무엇인가?'에 대해서 집중적으로 다루어 보고자 합니다. 기존 자연어처리 분야에서는 Recurrence mechanism, 비전 분야에서는 Convolutional mechanism으로 엄청난 연구 및 아키텍처들이 나온 만큼 이미 각 분야에서 각 mechanism이 탄탄한 베이스가 되어있었습니다. 하지만, '세상에 완벽한 시스템은 없다'라는 말과 같이 훌륭한 연구와 고질적인 문..
git push https://soda-dev.tistory.com/12 [GitHub] 깃허브에 프로젝트 올리기 보통은 저장소를 생성한뒤 'Upload files'를 하면 업로드되지만 파일 갯수가 너무 많을 경우 안되므로 큰 프로젝트를 업로드할때는 이 방법으로 하자 1. Git을 설치한다. https://git-scm.com/downloads Git - Do soda-dev.tistory.com 원격 저장소 주소 찾기 https://estar.tistory.com/56 github 저장소 주소 찾기 생활코딩 동영상을 보고있는 와중에 이미 만든 저장소의 주소는 도대체 어디서 볼수있는건지,,몰라서 한참 헤맸는데 그냥 버튼 하나만 누르면 됐지ㅏ더리나ㅓㄷ ㄹ나ㅓㅜㅜㅜㅜㅜㅜㅜ(멘붕) estar.tistory.c..
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net Level: Silver III Solved By: BFS BFS를 통해서 1번 노드로부터 연결된 모든 노드를 찾는 문제였습니다. from collections import deque N = int(input()) M = int(input()) adj = [[] for i in range(0, N + 1)] visited = [False for _ in range(0, N + 1)] def bfs(no..
PyTorch 한국 사용자 모임 페이지를 통한 PyTorch 기본 스터디를 끝냈습니다 :) 아래 깃허브 리포지토리에서 공부한 코드 및 추가적으로 궁금한 부분들을 실험하여 정리해두었습니다. https://github.com/drawcodeboy/Study-PyTorch GitHub - drawcodeboy/Study-PyTorch: Pytorch 기본 스터디 목적 리포지토리 Pytorch 기본 스터디 목적 리포지토리. Contribute to drawcodeboy/Study-PyTorch development by creating an account on GitHub. github.com https://draw-code-boy.tistory.com/580 optimizer.step()은 정말 가중치를 건들..
🤔 Problem PyTorch의 Tensor는 requires_grad가 True로 되어있을 때, 변화도에 대한 연산의 추적을 가능하게 합니다. 즉, 각 Tensor에 대해서 .grad 속성과 .grad_fn 속성이 생깁니다. .grad는 현재 Tensor에 대해 목적함수가 얼마큼 변했나에 대한 변화도의 값, 즉 미분 값을 담고 있으며, .grad_fn은 이전 Tensor에 대해서 현재 Tensor를 미분해 줄 때, 어떠한 연산에 대한 미분을 해주어야 하는지 특정 연산에 대한 미분 함수 정보를 담고 있습니다. (값이 아닌 함수 정보임을 유의) 예를 들어, b = a + 2라면, b에는 a에 대해 미분을 할 때, 더하기 연산을 통해 생성이 되었으니 더하기 연산으로 만들어졌다는 것을 알고 있다는 뜻입니다...
🤔 QuestionPyTorch에서는 모델을 학습시킬 때, (특히 Back Propagation이 일어날 때) 아래와 같은 과정을 거칩니다. 1) optimizer의 종류와 learning rate에 따른 optimizer를 선언하면서 model의 parameter 값을 넘깁니다.2) .grad 속성 값을 optim.zero_grad()를 통해 초기화시킵니다. (.grad accumulate 방지)3) 그 다음, .backward()를 호출시켜서 각 Tensor의 .grad 속성을 갱신합니다. 4) 마지막으로, optimizer.step()을 통해서 각 Tensor의 업데이트를 진행합니다. 이 과정에서 궁금했던 부분은 '정말 실제 model의 가중치를 업데이트하는가?'였습니다. 너무나..