일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 크루스칼
- NEXT
- Overfitting
- 문자열
- 조합론
- 다익스트라
- dfs
- 가끔은_말로
- c++
- lazy propagation
- 회고록
- back propagation
- 미래는_현재와_과거로
- 이분 탐색
- DP
- 2023
- 백트래킹
- dropout
- tensorflow
- object detection
- 우선 순위 큐
- 플로이드 와샬
- 분할 정복
- BFS
- pytorch
- 알고리즘
- 가끔은 말로
- 너비 우선 탐색
- 세그먼트 트리
- 자바스크립트
- Today
- Total
목록pytorch (6)
Doby's Lab
🤔 Problem오늘 다루어볼 문제는 어찌 보면 예전부터 궁금했으나 그에 대한 답을 감각적으로만 알고 있었고, 문제점으로 다루었을 때 어려울 것이라 예상했었기에 조금 미루어왔던 주제입니다. 오늘의 문제를 정의하기 전에 이것부터 얘기해 봅시다. 우리는 일반적으로 모델을 학습시킬 때, 배치 단위로 학습을 시킵니다. 그러면 예를 들어서 Input Tensor가 (4, 2)의 shape을 가진다고 했을 때, Batch Size가 16이라 해봅시다. 실제로 모델에 들어가게 되는 Input Tensor의 shape은 (16, 4, 2)가 될 것입니다. 이때, 모델의 Weight가 Batch Size에 따라서 똑같이 (16, weight shape)로 변하나요? 아닙니다. 그대로 (weight shape)을 유지하..
🤔 Problem문득 예전에 ViT를 구현해 놓은 코드를 보다가 그런 생각을 했습니다. '내가 저기서 nn.Parameter()를 왜 썼더라?' 지금 생각해 보면, 그냥 tensor를 써도 똑같은 코드일 텐데 말입니다. 이때 당시에 Attention을 구현하면서 Query, Key, Value를 만들어내기 위한 목적으로 Weight Matrix가 필요했었고, 여러 오픈 소스를 참고하면서 구현하다가 무심하게 썼었던 기억이 납니다.class ScaledDotProductAttention(nn.Module): def __init__(self, embedding_length, qkv_vec_length): ''' embedding_length : embedding 하나의 길이 -..
🤔 Problem이번에 ResNet을 PyTorch로 직접 구현해 보면서 약간의 의구심(?)이 들었던 부분이 있습니다. Residual Connection을 구현할 때 크게 2가지 방법으로 구현을 하는데, '두 코드 모두 Residual Connection을 수행하는가?'가 의문이자 이번 포스팅에서 알아내고 싶은 문제점입니다. + 코드에 대해서만 다룰 것이니 Residual Connection에 대한 개념의 언급은 따로 없습니다. 첫 번째 코드는 torchvision 라이브러리 내에 ResNet을 구현해 둔 소스코드입니다.해당 코드에서는 identity = x와 같은 방법으로 복사를 합니다.( https://github.com/pytorch/vision/blob/main/torchvision/model..
✅ Intro LLaVA-Med를 공부하면서 Visual Encoder로 CLIP(Contrastive Language-Image Pre-training)이 사용되어 이번 기회에 공부를 해보았습니다. CLIP은 기존 Classification 방식에서 새로운 메커니즘을 제안했습니다. Classification은 수많은 데이터셋에서 라벨링 된 클래스로 분류하는 것이 일반적인 특징입니다. 하지만, 세상에는 여러 가지 사물이 존재하며, 이 사물 또한 어떠한 상태에 있냐에 따라 분류를 할 수 있는 범위는 셀 수 없을 정도로 많습니다. 예를 들어, '일반적인 자전거'와 '바퀴가 없는 자전거'라는 Task로 수많은 사물들이 더 디테일한 description을 원할 때, 단순한 Classification Task만으..
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에 대해 미분을 할 때, 더하기 연산을 통해 생성이 되었으니 더하기 연산으로 만들어졌다는 것을 알고 있다는 뜻입니다...