일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Front
- Vision
- SSL
- 딥러닝
- nlp
- FineGrained
- nerf
- web
- FGVC
- 머신러닝
- 자료구조
- math
- pytorch
- PRML
- Meta Learning
- Torch
- cs
- algorithm
- classification
- dl
- clean code
- REACT
- 알고리즘
- ML
- computervision
- GAN
- 3d
- Depth estimation
- CV
- Python
- Today
- Total
목록dl (137)
KalelPark's LAB
이전 포스팅을 참고하시기 바랍니다..! ALU(Arithmetic And Logic Unit) ALU는 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아들입니다. ALU는 레지스터와 제어장치로부터 받아들인 피연산자와 제어 신호로 산술 연산, 논리 연산 등 다양한 연산을 수행합니다. 연산을 수행한 결괏값은 바로 메모리에 저장되지 않고, 일시적으로 레지스터에 저장됩니다. CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 훨씬 느립니다. ALU가 연산할 때마다 결과를 메모리에 저장한다면 당연하게도 CPU는 메모리에 자주 접근하게 되고, 이는 CPU가 프로그램 실행 속도를 늦출 수 있습니다. 그래서 ALU의 결괏값을 메모리가 아닌 레지스터에 우선 저장하자..
컴파일 언어 컴파일러에 의해 소스 코드 전체가 저급언어로 변환되어 실행되는 고급언어입니다. 코드 전체가 저급 언어로 변환되는 과정 컴파일이라고 합니다. 컴파일이 성공적으로 수행되면 개발자가 작성한 소스코드는 컴퓨타가 이해할 수 있는 저급언어로 변환됩니다. 이러한 과정을 거쳐서 저급 언어로 변환된 코드를 목적코드라고 합니다. 인터프리터 인어 인터프리터 언어는 소스 코드가 한 줄씩 실행되는 고급 언어이다. 컴파일 언어와 달리 소스 코드가 한 줄씩 저급 언어로 변환되어 실행됩니다. 주소 지정 방식 만약 오퍼랜드 필드 안에 메모리 주소가 담긴다면 표현할 수 있는 데이터의 크기는 하나의 메모리 주소에 저장할 수 있는 공간만큼 커집니다. 연산 코드에 사용할 데이터가 저장될 위치, 즉 위치의 대상이 되는 데이터가 자..
Split란? Split의 경우 데이터당 최대 자료구 N개를 가지게 하는 방법입니다. 만약 원하고자 하는 split_size로 나누고자 하지만, 정확한 size로 나누는 것이 불가능하다면, 마지막 size는 작습니다. Chunk란? chunks의 경우 데이터를 n개로 나누는 방법입니다. chunk의 경우 n개의 그룹을 만드는 것이다. * 쉽게 이해하고자 한다면, chunk는 n개의 그룹을 만드는 것이고, split의 경우 n개로 구성된 그룹을 만드는 것이다.
*args, **kwargs란? Python에서의 *, **는 주소값을 저장하는 의미가 아닙니다. 여러 개의 인수를 받을 때, 키워드 인수를 받을 때 사용하는 표시입니다. *args *args는 *arguments의 줄임말입니다. 즉, 다른 단어를 작성해도 상관없습니다. 이 지시어는 여러 개(복수개)의 인자를 함수로 받고자 할 때 쓰입니다. *의 의미는 메모리 주소를 찾아서 값을 읽어준다는 의미이다. **kwargs kwargs는 keyword argument의 줄임말로 키워드를 제공합니다. **kwargs는 (키워드 = 특정 값) 형태로 함수를 호출할 수 있습니다. 즉, 딕셔너리 형태로 함수 내부로 전달됩니다. class nerf: def __init__(self, purple = 5, role = 5..
컴퓨터 구조란? 컴퓨터 구조에는 2가지 지식이 필요합니다. (컴퓨터가 이해하는 정보, 컴퓨터의 네 가지 핵심 부품) 컴퓨터가 이해하는 정보 - 데이터, 명령어 컴퓨터의 네 가지 핵심 부품 - CPU, 메모리, 보조기억장치, 주기억장치 메인보드 메모리, CPU, 시스템 버스를 구성하고 있습니다. 메모리 현재 실행되는 프로그램 명령어와 데이터를 저장하는 부품이다. 즉, 프로그램이 실행되려면 반드시 메모리가 있어야 합니다. 이때, 컴퓨터가 빠르게 작동하려면 데이터가 중구난방으로 있으면 안됩니다. 그러므로, 저장된 명령어와 데이터의 위치는 정돈되어 있어야 합니다. 그래서, 메모리에는 저장된 값에 빠르고 효율적으로 접근하기 위해 주소라는 개념을 사용합니다. 일상생활에서도 주소를 활용하여, 빠르게 접근하는 것이 가..
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 본 논문에서는, PixelNeRF를 제시합니다. PixelNeRF는 적은 이미지로, 연속적인 장면을 표..
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..