일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- FGVC
- Front
- Torch
- nerf
- CV
- computervision
- 알고리즘
- math
- 3d
- 자료구조
- algorithm
- dl
- SSL
- 딥러닝
- nlp
- pytorch
- 머신러닝
- FineGrained
- Python
- REACT
- PRML
- cs
- web
- Vision
- Meta Learning
- clean code
- GAN
- Depth estimation
- classification
- ML
- Today
- Total
목록pytorch (14)
KalelPark's LAB
Data Sampler는 주어진 Data Pool과 batchsize에서 어떻게 batch를 형성할지 결정해주며, Dataset의 순서를 결정하는 역할을 하기도 합니다. DataLoader가 초기화될 때, 데이터셋의 샘플들의 Sequence Order를 작성한다. 만들어진 Sequence를 통하여, 데이터셋에서 데이터들이 주어진 Batchsize만큼 batch의 형태로 나오게 됩니다. Sampler에는 여러가지가 존재합니다. - Random Sampler : 랜덤, replacement 여부 선택 가능, 개수 선택 가능 - SubsetRandom Sampler : 랜덤 리스트, 위와 두 조건 불가능 - Sequential Sampler : 항상 같은 순서 - Custom Sampler (Weight) :..
meshgrid - 각각의 원소가 scalar 또는 1 dimensional vector인 N개의 tensor를 받아, N개의 N dimensional grid를 만듭니다. i번째 grid는 i번째 input을 다른 input으로 정의된 차원만큼 확장한 것이다. import torch x = torch.tensor([1, 2, 3]) y = torch.tensor([4, 5, 6]) grid_x, grid_y = torch.meshgrid(x, y, indexing = "xy") print(grid_x) print(grid_y) >> tensor([[1, 2, 3], [1, 2, 3], [1, 2, 3]]) >> tensor([[4, 4, 4], [5, 5, 5], [6, 6, 6]]) grid_x, g..
Logsumexp - 지정된 차원 dim으로부터, 입력 텐서의 각 행에 대한 합계 지수 로그를 반환합니다. 이후, 계산은 수치적으로 안정화 됩니다. 사용하는 이유? - 매우 작은 양수나 매우 큰수를 나타내는 한 가지 방법으로는 Log를 활용하는 것이다. 하지만, 덧셈은 약간의 trick이 필요하다. (LogSumExp Trick이 필요합니다.) 두 큰 수 Exp(800) 와 Exp(900)을 더하고자 한다. 문제는, Log에서 덧셈은 곱셈처럼 간단하지 않습니다. (컴퓨터에서 정확하게 나타내는 것이 불가능합니다.) 그리하여, 각각의 큰 2개의 수를 2개의 수 중 최소 값으로 각각의 수를 나누고, 다시 2개의 수를 더한 후 log를 취한 다음, 이전에 나눈 최소 값을 더해주면 된다. - 이러한 방식을 활용하..
GitHub를 참고하시면, CODE 및 다양한 논문 리뷰가 있습니다! 하단 링크를 참고하시기 바랍니다. (+ Star 및 Follow는 사랑입니다..!) https://github.com/kalelpark/Awesome-ComputerVision GitHub - kalelpark/Awesome-ComputerVision: Awesome-ComputerVision Awesome-ComputerVision. Contribute to kalelpark/Awesome-ComputerVision development by creating an account on GitHub. github.com Abstract Self Supervision 원칙을 따름으로써, 우리는 pretext task를 따름으로써, jigs..
Chunk - Tensor를 지정된 Chunk의 개수로 분할하려고 합니다. 각 Chunk는 입력 텐서의 View이다. - torch.tensor_split()은 항상 명확하게, Chunk하지만, torch.Chunk는 작거나, 같게 합니다. (유연성) import torch chunk_example = torch.arange(12) print(chunk_example) -> tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) print(chunk_example.size()) -> torch.Size([12]) print(chunk_example.chunk(6, dim = -1)) -> (tensor([0, 1]), tensor([2, 3]), tensor([4, 5]),..
torch.nn.Module.register_buffer - parameter가 아니라 buffer를 수행하기 위한 목적으로 활용됩니다. - buffer는 state_dict에 저장되지만, 최적화에 사용되지 않습니다. 즉, 단순한 module이라고 볼 수 있습니다. def register_module(self, name : str, module : Optional["Module"]) -> None: self.add_module(name, module) torch.nn.Module.register_parameter - module에 name을 기반으로 parameter를 추가합니다. - register_buffer와 다르게, 최적화에 사용될 수 있습니다. def register_parameter(self,..