일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- FGVC
- PRML
- dl
- Vision
- 딥러닝
- Depth estimation
- math
- CV
- 자료구조
- 알고리즘
- Front
- FineGrained
- Python
- nlp
- cs
- clean code
- SSL
- 머신러닝
- GAN
- Meta Learning
- 3d
- Torch
- web
- pytorch
- algorithm
- classification
- REACT
- nerf
- ML
- Today
- Total
목록Data Science/CODE (14)
KalelPark's LAB
MaskedAutoencoder 일반적인 MAE에서의 Overall CODE class MaskedAutoencoder(nn.Module): def __init__(self): nn.Module.__init__(self) self.norm_pix_loss = True def patchify(self, imgs):# imgs to Patch p = self.decoder_patch_size h = w = imgs.shape[2] // p x = imgs.reshape(shape=(imgs.shape[0], 3, h, p, w, p)) x = torch.einsum('nchpwq->nhwpqc', x) x = x.reshape(shape=(imgs.shape[0], h * w, p**2 * 3)) retur..
파일 Zip 편리하게 해제하기 import os import zipfile from tqdm import tqdm all_file = os.listdir("ktti_zips/") pbar = tqdm(all_file, total = len(all_file), desc = "Unzip..", ncols = 100, ascii = " -", leave = True) for filed in pbar: if filed[-4:] == ".zip": zip_file = zipfile.ZipFile(os.path.join("ktti_zips", filed)) zip_file.extractall("data/") Reference https://code.tutsplus.com/ko/tutorials/compressin..
Pytorch에서는 Depth Estimation과 관련된 Model을 제공해줍니다..! https://pytorch.org/hub/intelisl_midas_v2/ 우선 필요한 라이브러리를 전부 불러옵니다. import cv2 import torch import time import numpy as np model_type = "MiDaS_small" midas = torch.hub.load("intel-isl/MiDaS", model_type) device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu") midas.to(device) midas.eval() midas_transforms = torch.hub.lo..
해당 객체에 Attention을 줘보도록 하겠습니다. :) CODE import torch import torch.nn as nn import torch.nn.functional as F from PIL import Image from torchvision.transforms import transforms trans_main = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean = 0.5, std = 0.5), ]) class ImageAttentionMap(nn.Module): def __init__(self): super(ImageAttentionMap, self).__..
import torch from PIL import Image import numpy as np from torchvision.transforms import transforms tf = transforms.ToPILImage() # Load image image = Image.open("/content/img.jpeg") image = np.array(image) tensor_image = torch.tensor(image) tensor_image = tensor_image.float() mask = torch.zeros_like(tensor_image) # Create binary mask mask[50:300, 200:300, :] = 1.0 # column, row mask[50:300, 420:..
기존 방법으로는 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 ..
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가 방향은 유지하고, 적은 값의 이동을..