본문 바로가기
728x90

AI-Tech 부스트캠프/파이토치10

[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.
[PyTorch] masked_fill() 함수 사용 예시 파이토치에서 masked_fill() 함수는 파이토치 tensor 의 특정 값을 다른 값으로 바꾸고자 할 때 사용된다. document 가 좀 설명이 부실한 것 같아서 예시로 하나 사용해보면 import torch import torch.nn.functional as F example = torch.FloatTensor([[1, 2, 3], [4, 5, 6]]) # 특정 행렬 mask = torch.FloatTensor([[0, 1, 1], [1, 0, 1]]) # 바꾸고자 하는 행렬의 원소를 0 고정하고자 하는 행렬의 원소를 1로 둔다. result = example.masked_fill(mask == 0, 5.5) # 0을 5.5로 변환 print(result) 2023. 1. 2.
728x90