卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

python想要裁剪出圖片中間部分 如何更好地調(diào)試神經(jīng)網(wǎng)絡?

如何更好地調(diào)試神經(jīng)網(wǎng)絡?聲明:本文適合神經(jīng)網(wǎng)絡初學者。神經(jīng)網(wǎng)絡的調(diào)試比大多數(shù)程序更難,因為大多數(shù)bug不會導致運行錯誤,只會導致不好的收斂??赡苡性S多看似模糊的錯誤消息:性能錯誤:您的神經(jīng)網(wǎng)絡沒有訓練

如何更好地調(diào)試神經(jīng)網(wǎng)絡?

聲明:本文適合神經(jīng)網(wǎng)絡初學者。

神經(jīng)網(wǎng)絡的調(diào)試比大多數(shù)程序更難,因為大多數(shù)bug不會導致運行錯誤,只會導致不好的收斂??赡苡性S多看似模糊的錯誤消息:

性能錯誤:您的神經(jīng)網(wǎng)絡沒有訓練好(性能:您的神經(jīng)網(wǎng)絡沒有訓練好)。

如果你有經(jīng)驗,你應該知道這意味著代碼需要大的改變。

第一,對付南?在大多數(shù)情況下,NaN錯誤發(fā)生在前100次迭代中,原因很簡單:你的學習率太高了。當學習率很高時,在前100次迭代中會出現(xiàn)NaN錯誤。使用系數(shù)3來降低學習率,直到前100次迭代不再出現(xiàn)NaN錯誤。一旦這樣做了,你將會有一個非常好的學習速度。根據(jù)我的經(jīng)驗,最好的學習率是你得到NaN錯誤的范圍的十分之一。

如果在100次迭代后遇到NaN錯誤,有兩個常見原因。

如果您使用RNN,確保您使用梯度下降和L2正則化的梯度。RNN在訓練初期似乎有一個梯度,10%以下批次有學習高峰,此時梯度幅度相當高。如果不切割梯度,這些峰將產(chǎn)生NaN。

如果寫自定義網(wǎng)絡層,很有可能NaN是除以0造成的。另一個已知會產(chǎn)生Nan誤差的層是Softmax層。Softmax計算包括分子和分母的exp(x)運算,可以將無窮大除以無窮大,得到NaN。確保使用穩(wěn)定的Softmax實現(xiàn)。

第二,神經(jīng)網(wǎng)絡可以 不學?一旦你沒有NaN誤差,你的神經(jīng)網(wǎng)絡可以平滑運行上千次迭代,也不會減少前幾百次迭代后的訓練損失。當你第一次構(gòu)建代碼庫時,你 最好不要使用2000次迭代。這并不是因為所有的網(wǎng)絡都可以從少于2000次的迭代中學習。相反,從一開始就對網(wǎng)絡進行編碼很可能會有bug,在達到高迭代次數(shù)之前,您會希望過早地對其進行調(diào)試?,F(xiàn)在的目標是一次又一次地縮小問題的范圍,直到你得到一個在2000次迭代下訓練出來的網(wǎng)絡。幸運的是,有兩種方法可以降低復雜性。

將訓練集的大小減少到10個實例。在數(shù)百次迭代中,在這10個實例中,神經(jīng)網(wǎng)絡通常出現(xiàn)過度擬合。許多編碼錯誤不會導致過擬合。如果你的網(wǎng)絡沒有。;不要過度適應10個示例的訓練集,請確保您使用的數(shù)據(jù)標記正確。將批次大小減少到1,以檢查批次計算錯誤。將print語句添加到代碼中可以確保輸出符合您的預期。通??梢酝ㄟ^上面介紹的純蠻力找出錯誤。一旦可以在10個實例上訓練網(wǎng)絡,就可以嘗試在100個實例上訓練它。如果這種方常工作,但效果不是很好,可以嘗試以下方法。

解決你感興趣的最簡單的問題。如果要翻譯句子,可以先建立一個特定語言的語言模型。如果你已經(jīng)完成了,試著用三個單詞預測第一個翻譯的單詞。如果要檢測圖像中的物體,可以在訓練回歸網(wǎng)絡之前對圖像中的物體數(shù)量進行分類。在網(wǎng)絡可以解決的棘手問題和使用最少的時間為代碼獲取適當?shù)臄?shù)據(jù)之間有一個權(quán)衡。這是發(fā)揮你創(chuàng)造力的時候了。

將神經(jīng)網(wǎng)絡應用到其他新場景的技巧就是合理使用上面介紹的兩個步驟。這是一種協(xié)調(diào)機制,效果不錯。首先,你表明這個神經(jīng)網(wǎng)絡至少能記住幾個例子。然后這個神經(jīng)網(wǎng)絡可以推廣到更簡單問題的驗證集。你在穩(wěn)步前進的同時也在慢慢增加難度。It 沒有卡帕西 專家第一次使用的風格,但至少它是有效的。有時候你會遇到一個棘手的問題,你會發(fā)現(xiàn)它不會在2000次迭代中繼續(xù)學習。那個 太棒了!但是迭代次數(shù)很少是這個問題之前復雜度的10倍。如果您發(fā)現(xiàn)是這種情況,請嘗試搜索中等復雜程度。

第三,調(diào)整參數(shù)。現(xiàn)在你的網(wǎng)絡可以學習東西,你可能會忘乎所以。你可能還會發(fā)現(xiàn)你訓練的網(wǎng)絡可以 不能解決大多數(shù)復雜的問題。超參數(shù)調(diào)整是解決問題的關鍵。有些人直接下載CNN軟件包并在他們的數(shù)據(jù)集上運行,然后告訴你使用超參數(shù)調(diào)整并不 沒什么區(qū)別。這是因為他們使用現(xiàn)有的架構(gòu)來解決現(xiàn)有的問題。如果你想解決的問題需要一個新的架構(gòu),就需要通過超參數(shù)調(diào)整來得到一個好的設置。你 d最好確定你已經(jīng)看了你要解決的問題的超參數(shù)教程,不過我下面會列出一些基本思路。

可視化:唐 不要害怕在培訓期間花時間編寫定制的可視化工具。如果你的可視化方法不。;如果行不通,考慮另一種方法。

權(quán)重初始化:一般來說,較大的初始化權(quán)重是一個不錯的選擇,但是過大會導致NaN。

確保重量看起來 "健康 "。為了理解這意味著什么,我建議在IPython 的筆記本?;c時間觀察在標準數(shù)據(jù)集(如Imag

怎樣在Linux下編程?需要什么技術?

Linux下編程其實很方便。Linux下有完整的編輯、調(diào)試、編譯、打包的棧工具。

當然需要熟悉常見的linux命令,熟悉shell環(huán)境,能夠適應純命令行終端的使用(Xwindows環(huán)境不是很成熟,不推薦)。然后Bug Bug就給大家講講Linux編程的一些技術:

終端編輯器和插件vim: Vim是最常用的Linux編輯工具,是linux IDE環(huán)境的矩陣。使用Vim配合一些插件,完全可以實現(xiàn)現(xiàn)代IDE環(huán)境下的大部分功能。

推薦組合:

主題:莫洛凱島(github:/to masr/莫洛凱島),vim-colors-日曬。

插件:YouCompleteM自動完成(github:/valloric/YouCompleteM)

瀏覽目錄結(jié)構(gòu)插件nerd tree(GitHub:/croo lose/nerd tree)

推薦的其他有用的vim工具:

Vim-surround:刪除、修改和添加括號、引號和XML操作。

Matchit:使用%在字符之間跳轉(zhuǎn)。

TComment:快速注釋和取消注釋代碼。

表格:對齊。

:代碼段。

Vim-easymotion:定位。

即時降價:降價時預覽文件。

Emacs:emacs是*unix系統(tǒng)中最大最強大的編輯器和操作系統(tǒng)(它幾乎可以做任何事情)。

emacs中常用的推薦插件

spacemacs vim和emacs功能的優(yōu)勢集:

德古拉主題是一個美麗的主題;

更多信息可以在github中看到倉庫Awesome-Emacs(Github:/Emacs-TW/Awesome-Emacs)。

調(diào)試debuglinux有強大的調(diào)試功能。工具gdb。GDB允許你調(diào)試程序,包括在你想的地方停止程序,這時你可以查看變量,寄存器,內(nèi)存和堆棧。此外,您可以修改變量和內(nèi)存值。對C、C、Fortran、rust、golang等語言的原生支持可以通過插件來實現(xiàn)。比如基于瀏覽器的擴展GDB GUI (GitHub:/CS01/GDB GUI)。

鏈接編譯工具Makemake是*nix下最強大的鏈接編譯工具?;贛akefiles的配置可以實現(xiàn)大型項目的自動編譯和編譯,減少開發(fā)人員的編譯勞動。

screen、Tmux、byobu等窗口和分屏工具也是碼農(nóng)不可或缺的工具。這些昆蟲的文章有專門介紹,所以我贏了 這里不再贅述。

基于需求和編碼農(nóng)民的語言環(huán)境,Linux下也有大量的工具來滿足需求,這也是昆蟲篇所涵蓋的領域之一。關注昆蟲可以學習和接受昆蟲的最新文章介紹。