CS 공부/AI
-
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..
-
torch 함수CS 공부/AI 2023. 3. 14. 11:26
torch.gather import torch A = torch.Tensor([[1, 2], [3, 4]]) # torch.gather 함수를 써서 해보세요! 정답=[1,4] A=torch.gather(A,0,torch.tensor([[0, 1]])) 여기서 index=torch.tensor[[0,1]]이므로 [[1,2], [3,4]] 에서 첫째줄의 0번째 인덱스 둘째줄의 1번째 인덱스가 가져와져 -> [[1,4]]가 된다. [[1,4]]를 squeeze하면 [1,4]가 됨 torch.from_numpy 더보기 #torch.from_numpy: numpy.ndarray에서 Tensor로 변환 import⸱numpy a=numpy.array([1,2,3]) t=torch.from_numpy(a) print..
-
파이썬 AI 개발 환경 준비CS 공부/AI 2023. 3. 2. 17:01
Basic computer class File system: OS에서 파일을 저장하는 트리구조 저장 체계 디렉토리 파일: 컴퓨터에서 정보를 저장하는 논리적 단위 (파일명과 확장자로 식별됨) 터미널: 마우스가 아닌 키보드로 명령을 입력, 프로그램 실행 (CLI) GUI와 달리 Text를 사용하여 컴퓨터에 명령을 입력하는 인터페이스 체계 기본 명령어: cd, clear, cp, rm, ls 등 파이썬 개요 Python의 유래: python은 그리스 신화속의 괴물 뱀이었다고 한다... 몬티 파이썬이라는 코미디 그룹의 이름에서 유래 Python의 특징 운영체제에 상관없이 작동하는 언어 객체 지향적 언어 (실행 순서가 아닌 객체 중심으로 프로그램 작성) 동적 타이핑 언어 (프로그램이 실행하는 시점에 데이터 타입 ..