1. Data Set
-가상의 함수를 통해 데이터 쌍(x, y)을 수집해 데이터 셋을 만들고 함수가 데이터를 통해 가상의 함수를 모방
-Ex) 신경망 등 활용 / 이때 x와 y는 각각 n차원과 m차원의 벡터로 표현될 수 있다
2. Tensor
-3차원 이상의 Data
-문장에서 단어와 특징으로 비유 가능 lxl = (문장, 단어, 특징)
Tensor Allocation: ft = torch,FloatTensor([1, 2], [3, 4]) #실수형 텐서 반환 lt = torch,LongTensor([1, 2], [3, 4]) #매트릭스형 반환 bt = torch,ByteTensor([1, 2], [3, 4]) #Boolean값 형태 (1, 0) |
Numpy와 호환: torch.from_numpy(x) #텐서를 넘파이로 객체.long(), 객체.float(), 객체.FloatTensor([1, 0]).byte() #텐서 값 타입 캐스팅 Tensor Shape: 객체.size() or 객체.shape 객체.dim() or len(객체.size()) 객체.reshape() #객체 형태 변환, -1값은 자동 연산(알아서 fit하게 해줌) 객체.squeeze() #차원 줄이기(1값), 0,1,2 등 인덱스 num으로 원하는 차원 값 감소 가능 객체.unsqueeze() #차원 늘리기(1값) |
★ Size가 달라도 Brodcasting 연산으로 같은 tensor로 만들어줌 (1, 2), (2, 1) --> (2, 2), (2, 2)
Tensor Paste & Cut / Randperm
객체.split(4, dim=0) #0번 차원을 4로 쪼개고 그 외 할당 객체.chunk(3, dim=0) #숫자로 나누기 객체.index_select(dim = 0, index = 다른객체) # 다른객체 인덱스로 차원 구분 torch.cat([x, y], dim=0) #dim 차원으로 concat (3, 3, 1) , (3, 3, 1) => (6, 3, 1) torch.stack([x, y]) # 차원을 쌓음 (3,3) , (3,3) => (2, 3, 3) 객체.expand # 차원 확장 |
torch.randperm(3**3).reshape(3, 3, -1) 27개의 무작위값 (3, 3 , -1) values, indices = torch.topk(x, k=1, dim= -1 #k개의 value와 튜플 값 리턴 values, indices = torch.sort(x, k=1, dim= -1, descending = True values ,indices = values[:, :, :k], indices[:, :, :k] #sort 활용 Topㅏ |
Masked_fill & Ones and Zeros
mask = x > 4 x.masked_fill(mask, value = -1) $마스크 조건이 맞을 경우 원래 값, 아닐 경우 -1 반환 torch.ones_like(x), torch.zeros_like(x) #1과 0값으로 채우기 |
반응형
'스터디 > AI' 카테고리의 다른 글
LLM component(1): Residual Connection(작성중) (0) | 2025.03.05 |
---|---|
벡터 DB(1) 튜토리얼 (0) | 2024.07.04 |
파이토치(2): 로지스틱 회귀와 클래스를 통한 구현 (0) | 2023.11.05 |
생성형 인공지능(1): Auto-GPT 소개 및 사용 (1) | 2023.09.17 |