清華博士導師整理:Tensorflow和Pytorch的筆記(包含經(jīng)典項目實戰(zhàn))
作為一名AI工程師,掌握一門深度學習框架是必備的生存技能之一。
自 TensorFlow 從 Google 中脫穎而出以來,它在研究和商業(yè)領(lǐng)域成為最受歡迎的開源深度學習框架,緊接著 從 Facebook 誕生的 PyTorch 由于社區(qū)推動的易用性改進和越來越廣泛的用例部署,而迅速趕上TensorFlow。
?
兩個框架在當年一度備受爭議,TensorFlow和PyTorch誰更好?
?
從去年校招開始到現(xiàn)在負責部門的面試,從我手上流走的簡歷多多少少也有上百封了。
?
面試了很多候選人,當問他們常用的深度學習框架時,發(fā)現(xiàn)他們清一色的選擇了:PyTorch。
?
從各個方面可以看出,經(jīng)過這些年的發(fā)展,PyTorch在學術(shù)圈的「壟斷」地位基本已經(jīng)站穩(wěn)。
?
誠然,比起TensorFlow,大多數(shù)研究人員更偏愛PyTorch的API,PyTorch設(shè)計更科學,而TensorFlow自推出2.0版本后,與TF 1.x 的API差異實在不小,導致doc的閱讀成本和版本適配成本都相當高。
?
如果是初學者,無腦Pytorch就對了。社區(qū)資源多、開源代碼多、上手也很簡單,各大廠商對Pytorch的支持也多(TensorRT、ONNX)。
?
其實框架的作用就是我們無需造輪子可以直接使用,并且節(jié)省工作量,對于Pytorch來說對研究友好、對訓練友好、對白嫖大佬的開源代碼也友好,對模型部署也友好,可以節(jié)省大把時間去做其他有意義的事情,沒有理由不使用Pytorch。
?
如果是工作了,就看公司在用什么吧,因為公司是面向需求的。
?
在業(yè)界,無論算法性能有多好,總歸還是要上線的,選擇框架的時候便會考慮以下這些問題,是否方便部署到線上,支持多語言,并且有較好的系統(tǒng)穩(wěn)定性以及有非常多線上應(yīng)用實例。
?
TF 1.x系列面世較早,在學術(shù)界、工業(yè)界都有很深的積淀,工業(yè)界由于項目更重,牽一發(fā)而動全身,因此目前很多項目仍然停留在TF 1.x(1.1x)上面。
?
像業(yè)界大多數(shù)支撐搜廣推場景的模型,還是用Tensorflow,TensorFlow適合大規(guī)模部署,特別是需要跨平臺和嵌入式部署時。
?
至于延伸到選擇哪個的問題:
?
顯而易見,小孩子才做選擇,而我們都要學,基本都要會用,這樣才能自己選擇工具,而不是工具挑選你。
然而,我們通過調(diào)研發(fā)現(xiàn),80%的0-3歲互聯(lián)網(wǎng)人沒有系統(tǒng)的學習過Tensorflow、PyTorch方向,缺乏項目實戰(zhàn),處于比較淺層面的對比。
網(wǎng)上解讀Tensorflow、PyTorch文章非常多但知識點零散,學習起來抓不住重點。
最近整理一套深度學習框架必備的學習資料,這套資料內(nèi)容非常詳盡全面,課程通過講解和實戰(zhàn)操作,帶你從零開始訓練網(wǎng)絡(luò),做到獨立搭建和設(shè)計卷積神經(jīng)網(wǎng)絡(luò)(包括主流分類和檢測網(wǎng)絡(luò)),并進行神經(jīng)網(wǎng)絡(luò)的訓練和推理(涉及PyTorch、Tensorflow、Caffe、Mxnet等多個主流框架),通過實戰(zhàn)讓你掌握各種深度學習開源框架。(資料已經(jīng)全部整理好)

資料內(nèi)容過多,不一一展開,僅截取框架學習部分目錄大家感受下。
深度學習與神經(jīng)網(wǎng)絡(luò)
深度學習簡介
基本的深度學習架構(gòu)
神經(jīng)元
激活函數(shù)詳解(sigmoid、tanh、relu等)
感性認識隱藏層
如何定義網(wǎng)絡(luò)層
損失函數(shù)
?
推理和訓練
神經(jīng)網(wǎng)絡(luò)的推理和訓練
bp算法詳解
歸一化
Batch Normalization詳解
解決過擬合
dropout
softmax
手推神經(jīng)網(wǎng)絡(luò)的訓練過程
?
從零開始訓練神經(jīng)網(wǎng)絡(luò)
使用python從零開始實現(xiàn)神經(jīng)網(wǎng)絡(luò)訓練
構(gòu)建神經(jīng)網(wǎng)絡(luò)的經(jīng)驗總結(jié)
?
深度學習開源框架
pytorch
tensorflow
caffe
mxnet
keras
優(yōu)化器詳解(GD,SGD,RMSprop等
