전체 글
-
Auto-regressive modelCS 공부/AI 2023. 3. 23. 00:49
생성 모델이란? (Generative Models) 주어진 학습데이터를 학습하여 학습 데이터의 분포를 따르는 유사한 데이터를 생성하는 모델 ex. 강아지 사진이 주어졌다고 하자 확률분포 p(x) -> implicit model이라고도 부름 Generation: 새로운 강아지 사진이 주어졌을 때 강아지 같아야 한다 Density estimation: 개와 비슷하면 p(x) 값이 높고, 안 비슷하면 낮아야 한다 확률분포 p(x)를 표현하기 위해 알아야할 Discrete Distributions(이산분포) Bernoulli distribution (베르누이 분포): 동전 뒤집기와 같음, 경우의 수가 두가지 ex. RGB 이미지의 픽셀 하나를 modeling하려면 (0~255) 한개의 픽셀이 가질 수 있는 색의..
-
Multi Head-attention 구조 파악하기CS 공부/AI 2023. 3. 22. 17:47
n_batch = 128 n_src = 32 d_feat = 200 n_head = 5 # 5개를 multihead attention 함 self.d_head = self.d_feat // self.n_head=200//5=40 scores=(Q*K^T/d_k) d_k=K_split.size(-1)=40 Input src:[128, 32, 200] = [n_batch, n_src, d_feat] Q_feat: [128, 32, 200] = [n_batch, n_src, d_feat] K_feat: [128, 32, 200] = [n_batch, n_src, d_feat] V_feat: [128, 32, 200] = [n_batch, n_src, d_feat] #multi-head attention위해 s..
-
TransformerCS 공부/AI 2023. 3. 22. 14:44
Sequential Model - 길이가 달라지거나, 중간에 단어가 생략되거나, 밀리게 되면 모델링하기 힘듦 - 이 문제를 해결하기 위해 Transformer 제안 Transformer Attention 모델을 기반으로 한 첫번째 sequence 변환 모델 Encoder: n개의 단어를 한꺼번에 처리 각 단어를 기계가 해석할 수 있도록 특정 벡터로 표현 Transformer가 각 단어를 특정 벡터로 인코딩함 (Self-Attention 사용) Self-Attention은 나머지 n-1개의 x 벡터도 고려함 -> dependencies가 있음 Feed forward neural network는 dependency가 없고 평행함, 그냥 z1~z3를 한번 변환해주는 것에 불과함 Self-Attention 계산..
-
torchvision에서 제공하는 transform 함수CS 공부/AI 2023. 3. 16. 11:11
transforms.Resize 이미지의 사이즈 변환 transforms.Resize((200,200))(im) # 이미지 크기를 200*200으로 변환 transforms.RandomCrop 이미지를 임의의 위치에서 자름 transforms.RandomCrop((100,100))(im) transforms.RandomRotation 이미지를 임의의 각도만큼 회전시킴 transforms.RandomRotation(30)(im) # 30도 회전시킴 transforms.CenterCrop 중앙에서 주어진 이미지를 자릅니다. transforms.CenterCrop(size) # size=(h,w), int로 주어지면 정사각형 크롭이 만들어짐 transforms.RandomVerticalFlip 이미지를 상하로..
-
DataLoaderCS 공부/AI 2023. 3. 16. 10:53
DataLoader의 기본 구성 요소 모델 학습을 위해서 데이터를 미니 배치(Mini batch)단위로 제공 DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None) dataloader_custom = DataLoader(dataset_custom) 📌 batch_size: 배치의 크기 ex. batch_size=10이고 dataset의 개수가 50이면 50/10=5번의 iteration이 필요 📌 shuffle: 데이터를 섞어서 사용할지 ..
-
DatasetCS 공부/AI 2023. 3. 15. 23:37
Dataset 관련 모듈 torch.utils.data: 데이터셋의 표준을 정의하고 데이터셋을 불러오고 자르고 섞는데 쓰는 도구들이 들어있는 모듈 모델 학습을 위한 데이터셋의 표준을 torch.utils.data.Dataset에 정의 torchvision.dataset: torch.utils.data.Dataset을 상속하는 이미지 데이터셋의 모음 (MNIST와 같은 데이터셋을 제공해줌.) torchtext.dataset: torch.utils.data.Dataset을 상속하는 텍스트 데이터셋의 모음 (IMDb나 AG_NEWS와 같은 데이터셋을 제공해줌) torchvision.transforms: 이미지 데이터셋에 쓸 수 있는 여러 가지 변환 필터를 담고 있는 모듈. 예를 들어 Tensor로 변환, 크기..
-
Pytorch 함수2CS 공부/AI 2023. 3. 15. 18:03
hook 패키지화된 코드에서 다른 프로그래머가 custom 코드를 중간에 실행시킬 수 있도록 만들어놓은 인터페이스 -프로그램의 실행 로직을 분석하거나 - 프로그램에 추가적인 기능을 제공하고 싶을 때 module에 적용하는 hook - forward hook, backward hook - register_forward_pre_hook, register_forward_hook, register_backward_hook, register_full_backward_hook tensor에 적용하는 hook - backward hook만 있음 - register_hook TORCH.TENSOR.REGISTER_HOOK backward hook 을 등록 hook는 Tensor에 대한 기울기가 계산될 때마다 호출됨 r..