Pytorch_torch.nn.MSELoss


Pytorch_torch.nn.MSELoss

均方損失函數作用主要是求預測實例與真實實例之間的loss

loss(xi,yi)=(xi−yi)2

  • 函數需要輸入兩個tensor,類型統一設置為float,否則會報錯,也可以在全局設置torch.set_default_tensor_type(torch.FloatTensor),也可以在計算時轉換
loss=torch.nn.MSELoss()
c=torch.tensor([[1,2],[3,4]])
d=torch.tensor([[5,6],[7,8]])
loss(c.float(),d.float())
  • 單個tensor正常求即可,多個求其平均loss。

item()方法

如果tensor只有一個元素,調用item會將tensor轉為python中scalars;如果不是一個元素,則會報錯。

Pytorch_with torch.no_grad()

requires_grad默認為False,如果某個節點被設置為True,那依賴它的節點的改參數都為True。例如y=xw,y依賴w,w的改參數設置為True時,y的該參數也變為True。 Pytorch較早版本中,有volatile該參數的設定比requires_grad的級別要高,主要是為了使某節點不求導,但現在已經被棄用。現在功能已經被with torch.no_grad代替:

x=torch.tensor([1],requires_grad=True)
with torch.no_grad():
    y = x * 10
y.requires_grad ###False
#也可以使用 @torch.no_grad()
@torch.no_grad()
def ten_folder(x):
    return x * 10
z= ten_folder(x)
z.requires_grad #結果為False 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM