深度學習踩坑

2022-06-19 06:45:10 字數 1183 閱讀 5006

雖然我覺得調參很蛋疼,但是最好還是記錄一下,以後可以節省很多時間。

附乙個大神的經驗總結訓練神經網路的秘訣

batch size更大時,學習率可以更大,因而訓練更快。

訓練網路時,如果batch size很小,比如1或2,這時候採用較大的學習率訓練會出現loss波動大,且很有可能幾個batch之後loss變成nan,無法訓練。

顯然解決方法是減小學習率,或者增大batch size,推薦後者,又快又好。

而一般來說無法採用較大的batch size的原因往往是單卡的視訊記憶體限制,batch size稍微大一點就出現out of memory的報錯,因而需要「開源節流」。

一些密集**型(dense prediction)的任務,如語義分割、深度/高度估計、人群密度估計等,對細節的要求較高,所以最好在訓練網路時保持較大的輸入解析度。

選用乙個batch的資料或者少量資料進行過擬合訓練,注意:

資料規範化(歸一化)處理是資料探勘的一項基礎工作。不同評價指標往往具有不同的量綱,數值見的差別可能很大,不進行處理可能會影響到資料分析的結果。為了消除指標之間的量綱和取值範圍差異的影響,需要進行標準化處理,將資料按照比例進行縮放,使之落入乙個特定的區域,便於進行綜合分析。如將工資收入屬性值對映到[-1, 1]或者[0, 1]內。

最小-最大規範化也稱為離散標準化,是對原始資料的線性變換,將資料值對映到[0, 1]之間。

\(x^* = \frac\)

離差標準化保留了原來資料中存在的關係,是消除量綱和資料取值範圍影響的最簡單方法。這種處理方法的缺點是若數值集中且某個數值很大,則規範化後各值接近於0,並且將會相差不大。(如 1, 1.2, 1.3, 1.4, 1.5, 1.6,8.4)這組資料。若將來遇到超過目前屬性[min, max]取值範圍的時候,會引起系統報錯,需要重新確定min和max。

零-均值規範化也稱標準差標準化,經過處理的資料的均值為0,標準差為1。

\(x^* = \frac}\)

其中\(\bar\)為原始資料的均值,\(\sigma\)為原始資料的標準差,是當前用得最多的資料標準化方式。標準差分數可以回答這樣乙個問題:"給定資料距離其均值多少個標準差"的問題,在均值之上的資料會得到乙個正的標準化分數,反之會得到乙個負的標準化分數。

通過移動屬性值的小數字數,將屬性值對映到[-1, 1]之間,移動的小數字數取決於屬性值絕對值的最大值。

\(x^* = \frac\)

深度學習 踩的各種坑

未完待續,遇到問題解釋一些問題 clone loss指的你在乙個擁有多個gpu的伺服器上訓練模型的時候,就算你指定了gpu,設定了利用率,在目標裝置無法完成需求情況下,tensorflow也會複製到多個gpu上執行。clone loss的意思就是sum loss。如果你只有一塊gpu,那麼就是clo...

Golang學習踩坑

學習一門新語言,難免少不了踩坑,很多坑都是因為上個語言遺留下來的習慣,在這裡記錄一下 jetbrains goland 編寫go語言的時候,不能直接寫import,一般寫main 的時候會自動匯入 go語言申明的變數必須使用,不然會編譯報錯 go語言一行一句,不支援分行,不需要 如果你想把多行語句並...

Django學習 踩坑ing

本以為學了這麼久的django,應該可以徒手做一些小東西了,然而,現實是殘酷的,我佛了,坑是真尼瑪的多,很多教程還沒有,得自己乙個個的踩,果然實踐起來和理論上還是有很大的差距的 好的現在我們來講一講我們踩得坑 1.提交表單的action 最好使用urls中的name來進行反向尋找相應的url,當然你...