2.8 使用开源的实现方案-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
| 2.7 Inception 網絡 | 回到目錄 | 2.9 遷移學習 |
使用開源的實現方案 (Using Open-source Implementations)
你現在已經學過幾個非常有效的神經網絡和ConvNet架構,在接下來的幾段視頻中我想與你分享幾條如何使用它們的實用性建議,首先從使用開放源碼的實現開始。
事實證明很多神經網絡復雜細致,因而難以復制,因為一些參數調整的細節問題,例如學習率衰減等等,會影響性能。所以我發現有些時候,甚至在頂尖大學學習AI或者深度學習的博士生也很難通過閱讀別人的研究論文來復制他人的成果。幸運的是有很多深度學習的研究者都習慣把自己的成果作為開發資源,放在像GitHub之類的網站上。當你自己編寫代碼時,我鼓勵你考慮一下將你的代碼貢獻給開源社區。如果你看到一篇研究論文想應用它的成果,你應該考慮做一件事,我經常做的就是在網絡上尋找一個開源的實現。因為你如果能得到作者的實現,通常要比你從頭開始實現要快得多,雖然從零開始實現肯定可以是一個很好的鍛煉。
如果你已經熟悉如何使用GitHub,這段視頻對你來說可能沒什么必要或者沒那么重要。但是如果你不習慣從GitHub下載開源代碼,讓我來演示一下。
(整理者注:ResNets實現的GitHub地址https://github.com/KaimingHe/deep-residual-networks
)
假設你對殘差網絡感興趣,那就讓我們搜索GitHub上的ResNets,那么你可以在GitHub看到很多不同的ResNet的實現。我就打開這里的第一個網址,這是一個ResNets實現的GitHub資源庫。在很多GitHub的網頁上往下翻,你會看到一些描述,這個實現的文字說明。這個GitHub資源庫,實際上是由ResNet論文原作者上傳的。這些代碼,這里有麻省理工學院的許可,你可以點擊查看此許可的含義,MIT許可是比較開放的開源許可之一。我將下載代碼,點擊這里的鏈接,它會給你一個URL,通過這個你可以下載這個代碼。
我點擊這里的按鈕(Clone or download),將這個URL復制到我的剪切板里。
(整理者注:NG此處使用的是linux系統的bash命令行,對于win10系統,可以開啟linux子系統功能,然后在win10應用商店下載ubuntu安裝,運行CMD,輸入命令bash即可進入linux的bash命令行)
接著到這里,接下來你要做的就是輸入git clone,接著粘貼URL,按下回車,幾秒之內就將這個資源庫的副本下載到我的本地硬盤里。
讓我們進入目錄,讓我們看一下,比起Windows,我更習慣用Mac,不過沒關系,讓我們試一下,讓我們進入prototxt,我認為這就是存放這些網絡文件的地方。讓我們看一下這個文件。因為這個文件很長,包含了ResNet里101層的詳細配置。我記得,從這個網頁上看到這個特殊實現使用了Caffe框架。但如果你想通過其它編程框架來實現這一代碼,你也可以嘗試尋找一下。
如果你在開發一個計算機視覺應用,一個常見的工作流程是,先選擇一個你喜歡的架構,或許是你在這門課中學習到的,或者是你從朋友那聽說的,或者是從文獻中看到的,接著尋找一個開源實現,從GitHub下載下來,以此基礎開始構建。這樣做的優點在于,這些網絡通常都需要很長的時間來訓練,而或許有人已經使用多個GPU,通過龐大的數據集預先訓練了這些網絡,這樣一來你就可以使用這些網絡進行遷移學習,我們將在下一節課討論這些內容。
當然,如果你是一名計算機視覺研究員,從零來實現這些,那么你的工作流程將會不同,如果你自己構建,那么希望你將工作成果貢獻出來,放到開源社區。因為已經有如此多計算機視覺研究者為了實現這些架構做了如此之多的工作,我發現從開源項目上開始是一個更好的方法,它也確實是一個更快開展新項目的方法。
課程板書
| 2.7 Inception 網絡 | 回到目錄 | 2.9 遷移學習 |
總結
以上是生活随笔為你收集整理的2.8 使用开源的实现方案-深度学习第四课《卷积神经网络》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.7 Inception 网络-深度学
- 下一篇: 2.9 迁移学习-深度学习第四课《卷积神