본문 바로가기

AI/Pytorch3

nn.Paramter() 딥러닝 모델을 설계할 때, 우리는 학습이 필요한 가중치와 편향 같은 파라미터를 정의함.이때 학습시키고 싶은 부분과 아닌 부분을 구분하기 위해 nn.Parameter()을 사용한다고 생각하면 편함 import torchfrom torch import nnclass MyModel(nn.Module): def __init__(self): super().__init__() self.weight = nn.Parameter(torch.randn(3, 3)) # 학습 가능한 파라미터 self.bias = torch.randn(3) # 학습 불가능한 텐서 2024. 11. 18.
torch.detach (and clone) torch.detach는 말 그대로 떼어내는 것이다.어떻게 보면 두 가지 기능을 하는건데복제와 연결을 끊는, 뗴어내는(detach)하는 것이다. x = torch.tesnor([1,2,3,4])z = x.clone(), z = x.detach() 같은데detach의 경우에는 계산 그래프에서 떼어내는 역할도 한다.아래의 그림이 이를 잘 표현해서 가져왔다.  이러면 backpropagation할 때 더이상 layer1까지 가지 않는다. 2024. 8. 11.
torch.rand() torch.rand함수는 [0,1) 구간에서 균등 분포를 따르는 난수로 채워진 텐서를 반환 parametersize -> 말 그대로 어떤 모양으로 반환할지, 리스트나 튜플로도 가능out: 출력 텐서를 지정여기서 Out이 좀 새로웠는데, 새로운 텐서를 생성하는 것이 아닌 기존에 있는 곳에 보낼 수 있다는 것임예를 들면import torch# 기존 텐서 생성c = torch.empty(3, 4)# 새로운 텐서를 생성하지 않고 c에 결과 저장a = torch.rand(3, 4)torch.add(a, 3, out=c) requires_grad(연산 저장 및 추적)와 pin_memory(DRAM을 거치지 않고 VRAM으로 데이터를 보내는)도 있음. 2024. 8. 11.