본문 바로가기
728x90

AI-Tech 부스트캠프43

LLM에서 padtoken을 eostoken으로 사용하는 이유 LLM 학습코드를 보면 다음과 같은 코드를 흔하게 볼 수 있다.from transformers import AutoTokenziertokenizer = AutoTokenizer.from_pretrained(model_name, padding_side="left")tokenizer.pad_token = tokenizer.eos_token  왜 pad_token을 eos_token으로 사용할까?? 이는 메모리 절약 및 모델의 일관성 유지 때문이라한다. pad_token: 시퀀스 길이를 맞추기 위해 추가하는 토큰. 일반적으로 학습 과정에서 무시됨eos_token: 시퀀스의 끝을 나타내는 토큰으로, 디코더모델에서 중요하게 사용 (1) 메모리 절약LLM에서는 거대한 단어 사전을 사용하므로 pad_token을 따로.. 2025. 3. 20.
[PyTorch] (B,C,H,W) 이어 붙이기 tensor.randn((B,) + (C,H,W)) CNN을 이용하여 Image Classification하는 훈련 train을 시킬 때 데이터를 (배치사이즈(B), 채널(C), 높이(H), 너비(W))를 차례대로 텐서의 크기를 맞춰서 코드를 작성해야할 때가 있다. 이때 배치사이즈만 따로 떨어져 있는 때가 있다. 이 때 tensor.randn((B,) + (C,H,W))를 이용하면 tensor((B,C,H,W)) 사이즈라는 것을 알릴 수 있다. 예제 # x_dim = (1,28,28) batch_in.view(-1,x_dim) #(batch_size, 1 * 28 * 28) batch_in.view((-1,)+x_dim) #(batch_size, 1, 28, 28) 2023. 11. 9.
torch.Tensor.item https://pytorch.org/docs/stable/generated/torch.Tensor.item.html torch.Tensor.item — PyTorch 2.1 documentation Shortcuts pytorch.org 모델에서 예측한 값(y_pred)과 참 값(y_trgt)값이 같은 것의 개수를 구하려 할 때 (y_pred==y_trgt).sum().item()을 쓰는 코드를 발견해서 디버깅을 해보면서 torch.Tensor.item()이 텐서 값을 숫자만으로 나타낼 수 있다는 것을 알았다. 이는 dictionary에서 (key, value) 값으로 나타내는 items과 다른 의미를 나타낼 수 있다는 것을 알았다. python items code car = { "brand": "BMW.. 2023. 11. 9.
torch.stack() 과 torch.cat() torch.stack() 과 torch.cat() 모두 행렬을 연결하는데 쓰인다. 하지만 둘의 다른점을 비교하지 않으면 가끔 혼란스러울 수 있다. 따라서 한번 정리하고 넘어가려 한다. torch.cat()은 주어진 차원을 기준으로 주어진 텐서들을 연결(concatenate)한다. torch.stack()은 새로운 차원으로 주어진 텐서들을 연결한다. import torch x = torch.FloatTensor([1,4]) y = torch.FloatTensor([2,5]) z = torch.FloatTensor([3,6]) print(x.shape) #torch.Size([2]) print(torch.stack([x,y,z])) # tensor([[1., 4.], # [2., 5.], # [3., 6.].. 2023. 4. 8.
728x90