배치 가 BxCxHxW
어디에 있는지 텐서가 B
있습니다. 배치 크기가 1 이상일 때 PyTorch에서 손실이 어떻게 구현되는지에 관심이 있습니다 . 다음은 PyTorch에서 일반적으로 수행하는 작업입니다.
l1_loss = torch.nn.L1Loss()
loss = l1_loss(pred,gt)
그것은이 있다는 것입니다 loss
배치의 평균 손실?
이것이 사실이라면 다음 코드는 PyTorch에서 일반적으로 수행하는 작업 (위 코드)과 동일합니까?
l1_loss = torch.nn.L1Loss()
for idx in range(B):
if idx==0:
loss = l1_loss(pred[idx,:,:,:],gt[idx,:,:,:])
else:
loss = l1_loss(pred[idx,:,:,:],gt[idx,:,:,:]) + loss
loss = loss/B
문서 의 동작을 설명 L1loss
: 그것은 전체 배치를 통해 평균 (기본적으로) 참이다. 대신 합계로 쉽게 변경할 수 있습니다.
l1_loss = torch.nn.L1Loss(reduction='sum')
예, 귀하의 코드는 Pytorch가 수행하는 작업과 동일합니다. 호출이없는 버전 L1loss
은 다음과 같습니다.
# Assuming your output is a vector of shape (B, F)
loss = torch.abs(pred - gt).sum(dim=1).mean(dim=0)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다