【杂谈】为什么Pytorch这么好用我还苦口婆心推荐初学者也学习一下caffe?
目前新手開始學習深度學習框架的時候大多是從Pytorch開始的,Pytorch是個好東西,筆者也很喜歡用。但是粉絲們也知道我們公眾號講了許多Caffe的內容,包括我們的季劃中的一些簡單任務也會包含caffe實現,那為什么一個已經不維護了的框架,我們還要支持甚至鼓勵學習呢?
Caffe是穩定而優秀的
深度學習開源框架眾多,Caffe的基礎代碼都是C++,Caffe在做計算機視覺任務中的圖像分類,分割,檢測等任務時,有非常成熟的網絡層,也很容易拓展。使用流程簡單,可視化清晰。
最早一批入行深度學習的同學應該都用過Caffe,自己寫過網絡層,甚至推導過反向傳播的公式,各家公司在很長一段時間內都是將Caffe的核心代碼移植到手機上,并且至今仍然被大量使用,你去面試,保不準就會被問到。
C++,CUDA繞不過
Pytorch等框架好用,主要在于API豐富,框架使用流程和Python語法靈活,非常適合做模型訓練,寫論文做科研。但是真正在工作崗位做算法工作并不會停留在訓練模型,還需要在移動端做部署,寫SDK,自定義算子,這些都需要優秀的C++編程能力,甚至是CUDA編程能力。
筆者當年讀書的時候做項目都是Matlab和C++,畢業的時候筆試面試全是C++,如今難道會不考察了?
事實上很多同學根本不具備合格的編程能力,甚至C++沒接觸過或者僅限于基礎語法。那么,在看完書籍之后如何去進行實踐呢?如何去掌握優秀的C++編碼能力?寫幾道編程題就夠了嗎?
不夠,首先要從閱讀優秀的源代碼開始,然后在業務中鍛煉。縱觀這么多的開源項目,在深度學習領域里,Caffe無疑是非常優秀的,最適合拿來學習C++,可以從以下幾個方向來做。
(1) 閱讀學習Caffe的源代碼和設計模式。
Caffe的所有源代碼都是C++/CUDA寫的,使用工廠設計模式,代碼結構清晰,可讀性和拓展性強,效率高。
(2) 自己添加新的網絡層,包括數據層,損失層等。
把C++類的設計,各種數據結構和標準庫熟悉并且用起來,把CUDA代碼也寫一寫,這些都是以后去公司從事模型部署和優化框架工作所必須準備好的技能。
(3) 學會用Caffe部署和分析模型。
學會用Caffe去分析每一個網絡層的計算量和計算時間,找到性能瓶頸。學會用它把模型進行封裝和加密,在嵌入式平臺中使用。
當然了,Pytorch和Tensorflow等一樣有C++的內容,筆者只是想說,從Caffe開始,可能更好。
程序員應該學會定制
優秀的程序員往往都有自己的風格,喜歡定制,從編輯器風格到開源項目。
一個Linux新手,往往還遺留著使用windows時傻瓜式安裝軟件的思維,害怕自己編譯開源項目,害怕寫Makefile等文件,這也是很多人止步Caffe等框架的原因。
一個開源項目都編譯不過,以后如何進步,要編譯和維護的項目多了去了,早做打算,以后可少受點苦。
轉載文章請后臺聯系
侵權必究
往期精選
【雜談】備戰3月春招!深入掌握模型優化,人臉算法,圖像質量等24個核心領域!
【總結】循序漸進,有三AI不得不看的技術綜述(超過100篇核心干貨)
【雜談】計算機視覺在人臉圖像領域的十幾個大的應用方向,你懂了幾分?
【雜談】那些底層的圖像處理問題中,GAN能有什么作為?
【雜談】2020年有三AI計算機視覺培養計劃詳解,該不該學&怎么學CV的簡單討論
總結
以上是生活随笔為你收集整理的【杂谈】为什么Pytorch这么好用我还苦口婆心推荐初学者也学习一下caffe?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【文本信息抽取与结构化】深入了解关系抽取
- 下一篇: 【杂谈】裸辞一年后,分享一下我的心态