《深度學習原理與PyTorch實戰(zhàn)》按照從理論到實踐,從實踐到創(chuàng)造的順序講解深度學習領(lǐng)域的知識與技術(shù),代碼翔實,公式簡單易懂。
《深度學習原理與PyTorch實戰(zhàn)》第1章介紹深度學習的概念和目前的形勢,第2章介紹Python編程語言基礎(chǔ),第3章使用Python語言計算極限、導數(shù)、級數(shù)等數(shù)學問題,第4章講解深度學習的基本原理與PyTorch框架的基本使用,第5章和第6章詳細講述經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)CNN和RCNN,第7~9章介紹自研深度學習框架,并詳細討論之前忽略的深度學習底層實現(xiàn)上的算法和細節(jié),第10章介紹目前機器學習的前沿無監(jiān)督學習,第11章主要講解深度學習模型以Web應用形式部署的技術(shù)。
《深度學習原理與PyTorch實戰(zhàn)》適合有高等數(shù)學基礎(chǔ)、希望了解深度學習領(lǐng)域知識和技術(shù)的初學者閱讀,也可作為相關(guān)培訓機構(gòu)的參考用書。
深度學習及神經(jīng)網(wǎng)絡(luò)算法涵蓋較廣的計算機和數(shù)學領(lǐng)域,本書系統(tǒng)講述深度學習的原理及應用,并介紹目前流行的深度學習框架PyTorch。從理論知識到實戰(zhàn)項目,內(nèi)容翔實。
★通俗易懂 深度學習需要一些公式推導,本書在推導公式之前詳細講解前置知識,助力讀者更好地理解理論知識。
★詳略得當 本書在重點難點出配有視頻講解,掃描書中提供的二維碼可觀看對應章節(jié)的視頻講解;相關(guān)知識領(lǐng)域,例如CUDA,本書也會在講解深度學習之余介紹它的基本使用,幫助讀者全方位地了解深度學習這個領(lǐng)域。
★深入淺出 深入計算機硬件,給出簡明結(jié)論。書中包含大量細心編寫的代碼,帶領(lǐng)讀者一起思考和實現(xiàn)理論。
深度學習及神經(jīng)網(wǎng)絡(luò)算法涵蓋較廣的計算機和數(shù)學領(lǐng)域,如果使用PyTorch、TensorFlow等深度框架,并記住它們的使用規(guī)則,可能能夠應付大部分的情況并繞過許多細節(jié),但知其然而不知其所以然,顯然只是學習深度學習的第一步,通用的深度學習框架并不總是能滿足所有的需求,如果要從使用到擴展乃至創(chuàng)造,就需要掌握遠比簡單使用更多的知識和細節(jié)。
得益于PyTorch、TensorFlow等深度學習框架都是開源的,有些時候通過發(fā)掘它們的源碼來進階相對簡單,例如我想知道PyTorch是如何實現(xiàn)Adam的,可以將光標移到torch.optim.Adam類名上,使用快捷鍵Ctrl+B或Ctrl+鼠標跳轉(zhuǎn)到聲明,便可以發(fā)現(xiàn)它調(diào)用了torch.optim.functional.adam函數(shù),同樣進入torch.optim.functional.adam,在這里可以發(fā)現(xiàn)Adam的算法實現(xiàn)。但這種方法并不總是能得到想知道的答案(實際上,大部分時候都無法奏效)。
作為一個成熟的框架,PyTorch 1.7.0的源碼已經(jīng)難以全部閱讀(C++/Python代碼行數(shù)都在十萬量級),且出于程序健壯性的考慮,其源碼含有不少條件判斷語句,對閱讀也會造成一定的阻礙,因此對讀者而言閱讀本書中的代碼和解讀相比直接閱讀深度學習框架的源碼應該效率更高。在有自研深度框架的經(jīng)驗后,使用這些成熟框架顯然會事半功倍,而且也能知道當它們無法滿足要求時如何擴展。
深度學習理論由來已久,但限于計算機的運算速度近幾年才被推上風口浪尖。深度學習中的大量運算往往以矩陣或張量為載體,它們的運算有高度的并行性,因此能夠在具有許多計算核心的GPU上被加速,這也是深度學習興起的現(xiàn)實基礎(chǔ)。
如果你曾關(guān)注過顯卡,那么可能也聽說過“CUDA核心”這個名詞,NVIDIA介紹一塊新顯卡時首先會說明它有多少個CUDA核心(或多少個流處理器)。CUDA是NVIDIA公司推出的計算平臺,目前主流的深度框架如TensorFlow和PyTorch都是以CUDA為核心,本書也會在介紹深度學習之余介紹它的基本用法,幫助讀者全方位地了解深度學習這個領(lǐng)域。
書中包含大量細心編寫的代碼,帶著讀者一起思考。本書在重點及難點處配有視頻講解,掃描書中提供的二維碼可觀看對應章節(jié)的視頻講解。
本書絕大多數(shù)理論輔以代碼實現(xiàn),同時也建議讀者先按照自己對理論的理解編寫對應的程序,若有疑問再參考本書的代碼。因為編程是不允許對知識模棱兩可的,理解有偏差時編寫的代碼往往會輸出顯而易見的錯誤結(jié)果甚至直接報錯無法運行。換言之,如果能將理論轉(zhuǎn)換為代碼,通常對那個概念就有一個初步的認識了。
因作者水平有限,書中難免存在疏漏,敬請讀者批評指正。
張偉振,主要從事系統(tǒng)架構(gòu)設(shè)計、深度學習在計算機視覺任務中的應用方面的研究,在計算機圖形學、大型軟件架構(gòu)設(shè)計、后臺開發(fā)、桌面應用、游戲、Web應用等領(lǐng)域亦有較豐富經(jīng)驗。
第1章 人工智能的新篇章
1.1 引言
1.2 過去人工智能的困境
1.3 神經(jīng)網(wǎng)絡(luò)
1.4 我們都是煉丹師
1.4.1 機器的力量
1.4.2 遍地開花的深度學習
1.5 深度監(jiān)督學習三部曲
1.6 深度學習框架
1.6.1 常見的深度學習框架
1.6.2 PyTorch的優(yōu)勢
第2章 Python基礎(chǔ)(29min)
2.1 Python簡介
2.1.1 Python語言
2.1.2 編譯器和解釋器
2.1.3 Python的哲學
2.1.4 Python的優(yōu)缺點
2.2 Python Hello World
2.2.1 安裝Python解釋器
2.2.2 Hello World程序
2.3 Python基本語法
2.3.1 變量
2.3.2 函數(shù)
2.3.3 基本數(shù)據(jù)類型
2.3.4 條件控制
2.3.5 列表
2.3.6 錯誤和異常
2.4 標準庫
2.4.1 math
2.4.2 文件讀寫和os庫
2.5 Python面向?qū)ο?br />2.5.1 花名冊
2.5.2 使用class關(guān)鍵字聲明類
2.5.3 限定函數(shù)參數(shù)的類型
2.5.4 靜態(tài)方法
2.6 包和模塊
2.6.1 安裝第三方庫
2.6.2 創(chuàng)建包和模塊
2.6.3 使用第三方庫
2.6.4 打包Python源代碼
2.7 開發(fā)環(huán)境
2.7.1 Jupyter Notebook
2.7.2 安裝PyCharm
第3章 實用數(shù)學(11min)
3.1 線性代數(shù)
3.1.1 向量
3.1.2 矩陣
3.1.3 使用矩陣的理由
3.2 高等數(shù)學
3.2.1 函數(shù)
3.2.2 函數(shù)的極限
3.2.3 導數(shù)
3.2.4 導函數(shù)
3.2.5 泰勒公式
3.2.6 偏導數(shù)
3.2.7 梯度
第4章 深度學習原理和PyTorch基礎(chǔ)(85min)
4.1 深度學習三部曲
4.1.1 準備數(shù)據(jù)
4.1.2 定義模型、損失函數(shù)和優(yōu)化器
……
第5章 卷積神經(jīng)網(wǎng)絡(luò)(38min)
第6章 序列模型(93min)
第7章 算法基礎(chǔ)
第8章 C++基礎(chǔ)
第9章 自研深度學習框架
第10章 無監(jiān)督學習
第11章 案例:游戲AI