Deep Learning/트랜스포머를 활용한 자연어 처리

[Chapter 3] 코드_1

notty 2024. 5. 17. 16:49
728x90

tensor.size(-1)

  • tensor.size() --> torch.Size([1, 5, 768])
  • tensor.size(-1) --> 768
  • -1이 인덱스 느낌임

 

torch.bmm(tensor1, tensor2)

  • 배치 행렬곱
  • 내적하는 경우 사용하는

 

tensor.transpose(1,2)

  • tensor.transpose(1,2) : (배치 크기, 시퀀스 길이, 히든 크기) --> (배치 크기, 히든 크기, 시퀀스 길이)

 

import torch.nn.functional as F

 

nn.Linear(embed_dim, head_dim)

  • nn.Linear(입력차원, 출력 차원)
  • keras dense layer 쌓는거랑 같은거

 

model(**viz_inputs)

  • 딕셔너리의 키-값 쌍을 개별적인 인자로 변환하여 함수에 전달

 

sentence_b_start = (viz_inputs.token_type_ids == 0).sum(dim=1)

  • {'input_ids': tensor([[ 101, 2051, 10029, 2066, 2019, 8612, 102, 5909, 10029, 2066, 1037, 15212, 102]]), 'token_type_ids': tensor([[0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}
  • 위는 viz_inputs변수에 저장된 값임 token_type_ids==0인 문장이 a문장, token_type_ids==1인 문장인 b으로 구분
  • viz_inputs.token_type_ids == 0 인 경우를 1, 아닌경우 0 으로 더하면 b번 문장의 시작 위치를 알 수 있음

 

nn.GELU()

관련 문서

  • Gaussian Error Linear Unit
  • GELU(x) = xP(X ≤ x) = xΦ(x) = x · 1 2 h 1 + erf(x/√ 2)i .
  • NLP모델의 활성화 함수로 많이 사용 
  • dropout, zoneout, ReLU의 속성을 결합
728x90
반응형

'Deep Learning > 트랜스포머를 활용한 자연어 처리' 카테고리의 다른 글

[chapter 6] 요약  (0) 2024.06.22
[Chapter 5] 텍스트 생성  (0) 2024.06.19
[Chapter 4] NER  (1) 2024.06.01
[Chapter 3] 트랜스포머  (0) 2024.05.22