PyTorch小知識(持續更新)

1.BacthNorm層的作用:

BN的基本思想其實相當直觀:因爲深層神經網絡在做非線性變換前的激活輸入值(就是那個x=WU+B,U是輸入)隨着網絡深度加深或者在訓練過程中,其分佈逐漸發生偏移或者變動,之所以訓練收斂慢,一般是整體分佈逐漸往非線性函數的取值區間的上下限兩端靠近(對於Sigmoid函數來說,意味着激活輸入值WU+B是大的負值或正值),所以這導致反向傳播時低層神經網絡的梯度消失,這是訓練深層神經網絡收斂越來越慢的本質原因而BN就是通過一定的規範化手段,把每層神經網絡任意神經元這個輸入值的分佈強行拉回到均值爲0方差爲1的標準正態分佈,其實就是把越來越偏的分佈強制拉回比較標準的分佈,這樣使得激活輸入值落在非線性函數對輸入比較敏感的區域,這樣輸入的小變化就會導致損失函數較大的變化,意思是這樣讓梯度變大,避免梯度消失問題產生,而且梯度變大意味着學習收斂速度快,能大大加快訓練速度。

原文:https://www.cnblogs.com/guoyaohua/p/8724433.html

2.PyTorch中網絡裏面的inplace=True字段的意思

在例如nn.LeakyReLU(inplace=True)中的inplace字段是什麼意思呢?有什麼用?

inplace=True的意思是進行原地操作。

例如x=x+5,對x就是一個原地操作,y=x+5,x=y,完成了與x=x+5同樣的功能但是不是原地操作,

上面LeakyReLU中的inplace=True的含義是一樣的,是對於Conv2d這樣的上層網絡傳遞下來的tensor直接進行修改,好處就是可以節省運算內存,不用多儲存變量y

3.如何進入Tensorboard進行可視化

tensorboard.exe --logdir=runs(runs前面不能加空格!!!)

4.如何由子目錄回到根目錄

cd..

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章