일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- computervision
- ML
- 머신러닝
- 3d
- cs
- clean code
- REACT
- 딥러닝
- dl
- PRML
- Meta Learning
- 알고리즘
- SSL
- Vision
- nlp
- algorithm
- FineGrained
- Python
- Torch
- Front
- pytorch
- Depth estimation
- FGVC
- CV
- GAN
- web
- classification
- math
- 자료구조
- nerf
- Today
- Total
목록Data Science (117)
KalelPark's LAB
기존 방법으로는 start_t - time.time() 으로 하였다.. 하지만 최근에 신기한 라이브러리를 찾았다. line_profile 사기다.. 예시 코드 # exist code ) start_t = time.time() print(f"# 1 : {time.time() - start_t}s") # recent code ) @profile def main(): # code if __name__ == __main__: main() bottleneck을 쉽게 확인하는 것이 가능하다 또한, lprof 파일이 생성되어, 자동 로깅이 가능합니다. Terminal 명령어를 사용하면, txt로 변환도 가능하다. python -m line_profiler test.py.lprof > results.txt Timer ..
Abstract Point cloud는 geometric data structure의 형태를 갖추고 있습니다. 본 논문에서는, Point clouds를 직접 다루는 Neural Network를 설계하였으며, Empty space가 아닌 input으로써 point의 불변성을 잘 다루게 됩니다. Segmentation, Detection, classification에서모두 활용될 수 있음을 보여줍니다. 이후, 우리는 어떤 Network가 무엇을 학습하는지 robust 한 이유에 대해서 언급합니다. Introduction 최근 방법론들은 Point cloud를 input으로 이용한 모델들을 제공합니다. Point cloud는 mesh처럼, 이뤄진 것이 아니기에 더 다루기 쉬운 모델일 수 있습니다. 하지만, P..
기존 3D point cloud와 관련된 방법론들은, grid-based method 방식이 대다수였습니다. grid-based 방식을 크게 발전시킨 방법으로는, SP Conv입니다. Sparse Convd 는 Computing cost를 매우 줄일 수 있는 방식으로, 실시간 detection에서 매우 효과적입니다. 기존 Grid-based Method는 point cloud에서는 대부분의 정보가 비어있기 때문에, 적합하지 않습니다. Sparse Conv는 매우 sparse한 data인 point cloud의 문제를 해결하는데 매우 효과적인 방식입니다. Rule book 즉, 정보가 존재하는 Rule에 따라, 해당부분만을 계산하여, 정보를 처리하는 연산입니다. 이러한 원리를 적용한다면 속도가 상당히 빠르..
Abstract Image에 대한 text로부터 학습하는 것은 Supervision에서 상당히 유망있는 분야입니다. Image 와 text 쌍을 pretraining 시킴으로써, 상당한 SOTA를 달성함을 본 논문에서는 증명합니다. NLP는 visual concept을 추론하는데 사용될 수 있으며, zero-shot transfer model로 사용되는 것이 가능합니다. Overview CNN 기반 모델들이, 강한 면모를 보여주기는 하지만, zero-shot에서는 매우 낮은 성능을 보입니다. 본 논문에서는 대규모 데이터셋(Image + text)로부터, 학습하여 상당히 좋은 결과를 얻습니다. Contrastive Learning과 유사하게, Image와 text를 하나의 공통된 space로 보낸 다음, ..
Sparse Convolution LiDAR 신호 처리에서 필수적인 역할을 합니다. 기존 Convolution과 다르게, GPU 계산 스키마를 사용하는 방식입니다. 3D point cloud 신호의 경우 추가적인 차원은 계산을 크게 증가시킵니다. 반면, 일반적인 이미지와 다르게, 3D voxel point cloud 데이터는 종종 Sparse 신호가 됩니다. 문제는 모든 이미지 픽셀이나 공간을 스캔하는 대신 Sparse 데이터로만, 효율적으로 계산합니다. 아래의 내용을 참고하면 됩니다. Reference https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Liu_Sparse_Convolutional_Neural_2015_CVPR_paper..
Pytorch를 사용할 때, 모델을 빠르게 학습시켜야 할 경우가 있습니다. 이러한 경우, 병렬화를 사용하는 것이 좋습니다. - 학습을 더 빨리 끝내기 위해서, - 모델이 너무 커서 이를 분할하여, GPU에 올리기 위함입니다. * 기존 torch.nn.DataParallel의 문제점은 1) 멀티쓰레드 모듈을 사용하기에 Python에서 상당히 효율적이지 않습니다. - Python은 GIL (Global Interpreter Lock)에 의하여, 하나의 프로세스에서 동시에 여러개의 쓰레드가 작동할 수 없습니다. 그러므로, 멀티 쓰레드가 아닌 멀티 프로세스 프로그램을 만들어서 여러개의 프로세스를 동시에 실행하게 해야 합니다. 2) 하나의 모델에서 업데이트 된 모델이 다른 device로 매 step마다 복제해야 ..
Gradient Clipping이란? 주로 RNN계열에서 gradient vanishing이나 gradient exploding이 많이 발생하는데, gradient exploding을 방지하여, 학습의 안정화를 도모하기 위해 사용하는 방법입니다. Gradient Clipping과 L2_Norm Clipping이란, gradient가 일정 threshold를 넘어가면, clipping을 해줍니다. clipping은 gradient의 L2 norm으로 나눠주는 방식입니다. Clipping이 없으면, gradient가 너무 뛰어서, global minimum에 도달하지 않고, 너무 엉뚱한 방향으로 향하게 되지만, Clipping을 해주게 되면, gradient vector가 방향은 유지하고, 적은 값의 이동을..
딥러닝을 돌리다보면, Memory가 부족하면, CUDA Out Of Memory를 자주 만나게 됩니다. GPU 메모리가 부족이 많이 발생하였을 때, 메모리 부족이 일어나는 이유이기도 때문입니다. batch size가 학습에 큰 영향을 미치지 않는다면 상관이 없지만, batch size는 학습에 큰 영향을 줍니다. batch size가 큰 배치사이즈를 사용하는 이유는 학습시에 정보의 노이즈를 제거하고 더 나은 gradient decsent를 수행할수 있습니다. Explained of Gradient Accumulate [CODE] model.zero_grad() # Reset gradients tensors for i, (inputs, labels) in enumerate(training_set): pre..