일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- clean code
- Vision
- computervision
- CV
- Depth estimation
- nerf
- 자료구조
- algorithm
- 머신러닝
- REACT
- 딥러닝
- SSL
- cs
- 알고리즘
- GAN
- dl
- Python
- FineGrained
- Torch
- web
- classification
- 3d
- nlp
- PRML
- ML
- Front
- math
- pytorch
- Meta Learning
- FGVC
- Today
- Total
목록Python (36)
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..
Machine Learning 및 Deep Learning에서는 선형대수를 알아야 하는 것은 필수입니다..! 선형대수와 관련된 Numpy를 톺아보도록 하겠습니다. - 단위 행렬(identity Matrix) : np.Unit(x) - 대각 행렬(Diagonal Matrix) : np.diag(x) - 내적(Dot Product, inner product) : np.dot(a, b) - 대각합(Trace) : np.trace(x) - 행렬식(Matrix Determinant) : np.linalg.det(x) - 역행렬(Inverse of a Matrix) : np.linalg.inv(x) - 고유값(Eigenvalue) : np.linalg.eig(x) - 특이값 분해(Singular Value Deco..
broadcast_to란? 배열을 새로운 모양으로 broadcast합니다. import numpy as np x = np.array([1, 2, 3]) temp = np.broadcast_to(x, (3, 3)) >> array([[1, 2, 3], [1, 2, 3], [1, 2, 3]]) linspace란? Python의 Numpy 모듈에 포함된 함수로서 1차원 배열 만들때 활용됩니다. (line spaced의 줄임말입니다.) 그래프 그리기에서 수평축의 간격 만들기 등에서 매우 편리하게 사용할 수 있는 함수입니다. 시작 값과 끝 값을 입력하고, 몇 개의 일정한 간격으로 요소를 만들 것인지를 나타내야 합니다. import numpy as np x = np.linspace(0, 10, 11) print(x..
YACS(Yet Another Configuration System)란? - YACS는 실험을 위해 설계된 소프트웨어로 시스템 구성, 정의 및 관리하기 위해 만들어진 경량 시스템이다. 주로 머신러닝에서의 hyperparameter를 관리한다든지, Conv를 관리할 때 사용합니다. - 재현성이 주로 중요하므로, 실험구성을 configuration을 할 수 있는 신뢰할 수 있는 방식이 필요하다. EX> from yacs.config import CfgNode as CN _C = CN() _C.SYSTEM = CN() # Number of GPUS to use in the experiment _C.SYSTEM.NUM_GPUS = 8 # Number of workers for doing things _C.SYS..
StaticMethod, ClassMethod 알아보기 ClassMethod - 데코레이터를 사용해서 클래스에 메서드를 선언하면 해당 메서드는 클래스 메서드가 되며, 첫번째 매개 변수로 클래스 인스턴스가 아닌 클래스 자체가 넘어오게 됩니다. 관행적으로 cls라고 부르며, 클래스 메서드는 cls를 통하여 속성(attribute)에 접근하거나, 클래스 메서드를 호출할 수 있습니다. 하지만, 인스턴스 메서드와 달리 인스턴스 속성에 접근하거나 다른 인스턴스 메서드를 호출하는 것은 불가능합니다. class User: def __init__(self, email, password): self.email = email self.password = password @classmethod def fromTuple(cls..
Logsumexp - 지정된 차원 dim으로부터, 입력 텐서의 각 행에 대한 합계 지수 로그를 반환합니다. 이후, 계산은 수치적으로 안정화 됩니다. 사용하는 이유? - 매우 작은 양수나 매우 큰수를 나타내는 한 가지 방법으로는 Log를 활용하는 것이다. 하지만, 덧셈은 약간의 trick이 필요하다. (LogSumExp Trick이 필요합니다.) 두 큰 수 Exp(800) 와 Exp(900)을 더하고자 한다. 문제는, Log에서 덧셈은 곱셈처럼 간단하지 않습니다. (컴퓨터에서 정확하게 나타내는 것이 불가능합니다.) 그리하여, 각각의 큰 2개의 수를 2개의 수 중 최소 값으로 각각의 수를 나누고, 다시 2개의 수를 더한 후 log를 취한 다음, 이전에 나눈 최소 값을 더해주면 된다. - 이러한 방식을 활용하..
Calculating Distance - Python의 Scipy(Calculating pair-wise distance)를 활용해서, 각 원소 간 짝을 이뤄 거리를 계산합니다. - pdist() : return condensed distance matrix Y (축소된 거리를 반환합니다.) - cdist() : returns M by N distance Matrix (원소간 쌍을 이루어, 거리를 계산합니다.) pdist와 다르게, 두 개의 행렬을 받을 뿐만 아니라, 거리 행렬(condensed distance Matrix)을 반환합니다. * 여러가지 거리 측정 방식을 제안합니다. (하단의 링크를 참고하시기 바랍니다.) EX> from scipy.spatial.distance import cdist, p..