注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)人工智能PyTorch深度學(xué)習(xí)和圖神經(jīng)網(wǎng)絡(luò) 卷1基礎(chǔ)知識

PyTorch深度學(xué)習(xí)和圖神經(jīng)網(wǎng)絡(luò) 卷1基礎(chǔ)知識

PyTorch深度學(xué)習(xí)和圖神經(jīng)網(wǎng)絡(luò) 卷1基礎(chǔ)知識

定 價:¥129.80

作 者: 李金洪 著
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787115549839 出版時間: 2021-12-01 包裝: 平裝
開本: 16開 頁數(shù): 355 字?jǐn)?shù):  

內(nèi)容簡介

  本書從基礎(chǔ)知識開始,介紹深度學(xué)習(xí)與圖神經(jīng)網(wǎng)絡(luò)相關(guān)的一系列技術(shù)與實現(xiàn)方法,主要內(nèi)容包括PyTorch的使用、神經(jīng)網(wǎng)絡(luò)的原理、神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)模型、圖神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)模型。書中側(cè)重講述與深度學(xué)習(xí)基礎(chǔ)相關(guān)的網(wǎng)絡(luò)模型和算法思想,以及圖神經(jīng)網(wǎng)絡(luò)的原理,且針對這些知識點給出在PyTorch框架上的實現(xiàn)代碼。本書適合想學(xué)習(xí)圖神經(jīng)網(wǎng)絡(luò)的技術(shù)人員、人工智能從業(yè)人員閱讀,也適合作為大專院校相關(guān)專業(yè)的師生用書和培訓(xùn)班的教材。

作者簡介

  李金洪, 精通C、Python、Java語言,擅長神經(jīng)網(wǎng)絡(luò)、算法、協(xié)議分析、移動互聯(lián)網(wǎng)安全架構(gòu)等技術(shù),先后擔(dān)任過CAD算法工程師、架構(gòu)師、項目經(jīng)理、部門經(jīng)理等職位。參與過深度學(xué)習(xí)領(lǐng)域某移動互聯(lián)網(wǎng)后臺的OCR項目,某娛樂節(jié)目機(jī)器人的語音識別、聲紋識別項目,金融領(lǐng)域的若干分類項目。

圖書目錄

目錄
第 一篇 入門——PyTorch基礎(chǔ)
第 1章 快速了解人工智能與PyTorch 3
1.1 圖神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí) 4
1.1.1 深度神經(jīng)網(wǎng)絡(luò) 4
1.1.2 圖神經(jīng)網(wǎng)絡(luò) 4
1.2 PyTorch是做什么的 4
1.3 PyTorch的特點 5
1.4 PyTorch與TensorFlow各有所長 6
1.5 如何使用本書學(xué)好深度學(xué)習(xí) 8
第 2章 搭建開發(fā)環(huán)境 9
2.1 下載及安裝Anaconda 10
2.1.1 下載Anaconda開發(fā)工具 10
2.1.2 安裝Anaconda開發(fā)工具 10
2.1.3 安裝Anaconda開發(fā)工具時的注意事項 11
2.2 安裝PyTorch 11
2.2.1 打開PyTorch官網(wǎng) 12
2.2.2 配置PyTorch安裝命令 12
2.2.3 使用配置好的命令安裝PyTorch 12
2.2.4 配置PyTorch的鏡像源 13
2.3 熟悉Anaconda 3的開發(fā)工具 15
2.3.1 快速了解Spyder 15
2.3.2 快速了解Jupyter Notebook 17
2.4 測試開發(fā)環(huán)境 18
第3章 PyTorch基本開發(fā)步驟——用邏輯回歸擬合二維數(shù)據(jù) 19
3.1 實例1:從一組看似混亂的數(shù)據(jù)中找出規(guī)律 20
3.1.1 準(zhǔn)備數(shù)據(jù) 20
3.1.2 定義網(wǎng)絡(luò)模型 21
3.1.3 搭建網(wǎng)絡(luò)模型 22
3.1.4 訓(xùn)練模型 23
3.1.5 可視化訓(xùn)練結(jié)果 23
3.1.6 使用及評估模型 24
3.1.7 可視化模型 25
3.2 模型是如何訓(xùn)練出來的 26
3.2.1 模型里的內(nèi)容及意義 26
3.2.2 模型內(nèi)部數(shù)據(jù)流向 27
3.3 總結(jié) 27
第4章 快速上手PyTorch 29
4.1 神經(jīng)網(wǎng)絡(luò)中的幾個基本數(shù)據(jù)類型 30
4.2 張量類的基礎(chǔ) 30
4.2.1 定義張量的方法 30
4.2.2 張量的類型 32
4.2.3 張量的type()方法 33
4.3 張量與NumPy 34
4.3.1 張量與NumPy類型數(shù)據(jù)的相互轉(zhuǎn)換 34
4.3.2 張量與NumPy各自的形狀獲取 34
4.3.3 張量與NumPy各自的切片操作 34
4.3.4 張量與NumPy類型數(shù)據(jù)相互轉(zhuǎn)換間的陷阱 35
4.4 在CPU和GPU控制的內(nèi)存中定義張量 36
4.4.1 將CPU內(nèi)存中的張量轉(zhuǎn)化到GPU內(nèi)存中 36
4.4.2 直接在GPU內(nèi)存中定義張量 36
4.4.3 使用to()方法來指定設(shè)備 36
4.4.4 使用環(huán)境變量CUDA_VISIBLE_DEVICES來指定設(shè)備 36
4.5 生成隨機(jī)值張量 37
4.5.1 設(shè)置隨機(jī)值種子 37
4.5.2 按照指定形狀生成隨機(jī)值 37
4.5.3 生成線性空間的隨機(jī)值 37
4.5.4 生成對數(shù)空間的隨機(jī)值 38
4.5.5 生成未初始化的矩陣 38
4.5.6 更多的隨機(jī)值生成函數(shù) 38
4.6 張量間的數(shù)學(xué)運算 38
4.6.1 PyTorch的運算函數(shù) 39
4.6.2 PyTorch的自變化運算函數(shù) 39
4.7 張量間的數(shù)據(jù)操作 39
4.7.1 用torch.reshape()函數(shù)實現(xiàn)數(shù)據(jù)維度變換 39
4.7.2 實現(xiàn)張量數(shù)據(jù)的矩陣轉(zhuǎn)置 40
4.7.3 view()方法與contiguous()方法 40
4.7.4 用torch.cat()函數(shù)實現(xiàn)數(shù)據(jù)連接 41
4.7.5 用torch.chunk()函數(shù)實現(xiàn)數(shù)據(jù)均勻分割 41
4.7.6 用torch.split()函數(shù)實現(xiàn)數(shù)據(jù)不均勻分割 42
4.7.7 用torch.gather()函數(shù)對張量數(shù)據(jù)進(jìn)行檢索 42
4.7.8 按照指定閾值對張量進(jìn)行過濾 42
4.7.9 找出張量中的非零值索引 43
4.7.10 根據(jù)條件進(jìn)行多張量取值 43
4.7.11 根據(jù)閾值進(jìn)行數(shù)據(jù)截斷 43
4.7.12 獲取數(shù)據(jù)中最大值、最小值的索引 43
4.8 Variable類型與自動微分模塊 44
4.8.1 自動微分模塊簡介 44
4.8.2 Variable對象與張量對象之間的轉(zhuǎn)化 44
4.8.3 用no_grad()與enable_grad()控制梯度計算 45
4.8.4 函數(shù)torch.no_grad()介紹 45
4.8.5 函數(shù)enable_grad()與no_grad()的嵌套 46
4.8.6 用set_grad_enabled()函數(shù)統(tǒng)一管理梯度計算 47
4.8.7 Variable對象的grad_fn屬性 47
4.8.8 Variable對象的is_leaf屬性 48
4.8.9 用backward()方法自動求導(dǎo) 48
4.8.10 自動求導(dǎo)的作用 49
4.8.11 用detach()方法將Variable對象分離成葉子節(jié)點 49
4.8.12 volatile屬性擴(kuò)展 50
4.9 定義模型結(jié)構(gòu)的步驟與方法 50
4.9.1 代碼實現(xiàn): Module類的使用方法 50
4.9.2 模型中的參數(shù)Parameters類 52
4.9.3 為模型添加參數(shù) 53
4.9.4 從模型中獲取參數(shù) 53
4.9.5 保存與載入模型 56
4.9.6 模型結(jié)構(gòu)中的鉤子函數(shù) 57
4.10 模型的網(wǎng)絡(luò)層 58
第5章 神經(jīng)網(wǎng)絡(luò)的基本原理與實現(xiàn) 59
5.1 了解深度學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)與神經(jīng)元 60
5.1.1 了解單個神經(jīng)元 60
5.1.2 生物神經(jīng)元與計算機(jī)神經(jīng)元模型的結(jié)構(gòu)相似性 62
5.1.3 生物神經(jīng)元與計算機(jī)神經(jīng)元模型的工作流程相似性 63
5.1.4 神經(jīng)網(wǎng)絡(luò)的形成 63
5.2 深度學(xué)習(xí)中的基礎(chǔ)神經(jīng)網(wǎng)絡(luò)模型 63
5.3 什么是全連接神經(jīng)網(wǎng)絡(luò) 64
5.3.1 全連接神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu) 64
5.3.2 實例2:分析全連接神經(jīng)網(wǎng)絡(luò)中每個神經(jīng)元的作用 64
5.3.3 全連接神經(jīng)網(wǎng)絡(luò)的擬合原理 66
5.3.4 全連接神經(jīng)網(wǎng)絡(luò)的設(shè)計思想 67
5.4 激活函數(shù)——加入非線性因素,彌補(bǔ)線性模型缺陷 68
5.4.1 Sigmoid函數(shù) 68
5.4.2 tanh函數(shù) 69
5.4.3 ReLU函數(shù) 70
5.4.4 激活函數(shù)的多種形式 72
5.4.5 擴(kuò)展1:更好的激活函數(shù)(Swish與Mish) 73
5.4.6 擴(kuò)展2:更適合NLP任務(wù)的激活函數(shù)(GELU) 74
5.5 激活函數(shù)總結(jié) 75
5.6 訓(xùn)練模型的步驟與方法 76
5.7 神經(jīng)網(wǎng)絡(luò)模塊(nn)中的損失函數(shù) 76
5.7.1 L1損失函數(shù) 76
5.7.2 均值平方差(MSE)損失函數(shù) 77
5.7.3 交叉熵?fù)p失(CrossEntropyLoss)函數(shù) 77
5.7.4 其他的損失函數(shù) 78
5.7.5 總結(jié):損失算法的選取 79
5.8 Softmax算法——處理分類問題 79
5.8.1 什么是Softmax 80
5.8.2 Softmax原理 80
5.8.3 常用的Softmax接口 80
5.8.4 實例3:Softmax與交叉熵的應(yīng)用 81
5.8.5 總結(jié):更好地認(rèn)識Softmax 82
5.9 優(yōu)化器模塊 82
5.9.1 了解反向傳播與BP算法 82
5.9.2 優(yōu)化器與梯度下降 83
5.9.3 優(yōu)化器的類別 83
5.9.4 優(yōu)化器的使用方法 83
5.9.5 查看優(yōu)化器的參數(shù)結(jié)構(gòu) 84
5.9.6 常用的優(yōu)化器——Adam 85
5.9.7 更好的優(yōu)化器——Ranger 85
5.9.8 如何選取優(yōu)化器 85
5.10 退化學(xué)習(xí)率——在訓(xùn)練的速度與精度之間找到平衡 86
5.10.1 設(shè)置學(xué)習(xí)率的方法——退化學(xué)習(xí)率 86
5.10.2 退化學(xué)習(xí)率接口(lr_scheduler) 87
5.10.3 使用lr_scheduler接口實現(xiàn)多種退化學(xué)習(xí)率 88
5.11 實例4:預(yù)測泰坦尼克號船上的生存乘客 91
5.11.1 載入樣本 91
5.11.2 樣本的特征分析——離散數(shù)據(jù)與連續(xù)數(shù)據(jù) 92
5.11.3 處理樣本中的離散數(shù)據(jù)和Nan值 93
5.11.4 分離樣本和標(biāo)簽并制作成數(shù)據(jù)集 95
5.11.5 定義Mish激活函數(shù)與多層全連接網(wǎng)絡(luò) 96
5.11.6 訓(xùn)練模型并輸出結(jié)果 97
第二篇 基礎(chǔ)——神經(jīng)網(wǎng)絡(luò)的監(jiān)督訓(xùn)練與無監(jiān)督訓(xùn)練
第6章 實例5:識別黑白圖中的服裝圖案 101
6.1 熟悉樣本:了解Fashion-MNIST數(shù)據(jù)集 102
6.1.1 Fashion-MNIST的起源 102
6.1.2 Fashion-MNIST的結(jié)構(gòu) 102
6.1.3 手動下載Fashion-MNIST數(shù)據(jù)集 103
6.1.4 代碼實現(xiàn):自動下載Fashion-MNIST數(shù)據(jù)集 103
6.1.5 代碼實現(xiàn):讀取及顯示Fashion-MNIST中的數(shù)據(jù) 104
6.2 制作批次數(shù)據(jù)集 105
6.2.1 數(shù)據(jù)集封裝類DataLoader 105
6.2.2 代碼實現(xiàn):按批次封裝Fashion-MNIST數(shù)據(jù)集 106
6.2.3 代碼實現(xiàn):讀取批次數(shù)據(jù)集 107
6.3 構(gòu)建并訓(xùn)練模型 108
6.3.1 代碼實現(xiàn):定義模型類 108
6.3.2 代碼實現(xiàn):定義損失的計算方法及優(yōu)化器 110
6.3.3 代碼實現(xiàn):訓(xùn)練模型 110
6.3.4 代碼實現(xiàn):保存模型 111
6.4 加載模型,并用其進(jìn)行預(yù)測 111
6.5 評估模型 112
6.6 擴(kuò)展:多顯卡并行訓(xùn)練 113
6.6.1 代碼實現(xiàn):多顯卡訓(xùn)練 113
6.6.2 多顯卡訓(xùn)練過程中,保存與讀取模型文件的注意事項 115
6.6.3 在切換設(shè)備環(huán)境時,保存與讀取模型文件的注意事項 116
6.6.4 處理顯存殘留問題 116
第7章 監(jiān)督學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò) 119
7.1 從視覺的角度理解卷積神經(jīng)網(wǎng)絡(luò) 120
7.1.1 生物視覺系統(tǒng)原理 120
7.1.2 微積分 120
7.1.3 離散微分與離散積分 120
7.1.4 視覺神經(jīng)網(wǎng)絡(luò)中的離散積分 121
7.2 卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu) 121
7.2.1 卷積神經(jīng)網(wǎng)絡(luò)的工作過程 122
7.2.2 卷積神經(jīng)網(wǎng)絡(luò)與全連接網(wǎng)絡(luò)的區(qū)別 123
7.2.3 了解1D卷積、2D卷積和3D卷積 123
7.2.4 實例分析:Sobel算子的原理 123
7.2.5 深層神經(jīng)網(wǎng)絡(luò)中的卷積核 126
7.2.6 理解卷積的數(shù)學(xué)意義——卷積分 126
7.3 卷積神經(jīng)網(wǎng)絡(luò)的實現(xiàn) 127
7.3.1 了解卷積接口 127
7.3.2 卷積操作的類型 129
7.3.3 卷積參數(shù)與卷積結(jié)果的計算規(guī)則 130
7.3.4 實例6:卷積函數(shù)的使用 130
7.3.5 實例7:使用卷積提取圖片的輪廓 135
7.4 深層卷積神經(jīng)網(wǎng)絡(luò) 138
7.4.1 深層卷積神經(jīng)網(wǎng)絡(luò)組成 138
7.4.2 池化操作 140
7.4.3 了解池化接口 140
7.4.4 實例8:池化函數(shù)的使用 141
7.4.5 實例9:搭建卷積神經(jīng)網(wǎng)絡(luò) 143
7.5 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 145
7.5.1 了解人的記憶原理 145
7.5.2 循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用領(lǐng)域 146
7.5.3 循環(huán)神經(jīng)網(wǎng)絡(luò)的正向傳播過程 147
7.5.4 BP算法與BPTT算法的原理 148
7.5.5 實例10:簡單循環(huán)神經(jīng)網(wǎng)絡(luò)實現(xiàn)——設(shè)計一個退位減法器 149
7.6 常見的循環(huán)神經(jīng)網(wǎng)絡(luò)單元及結(jié)構(gòu) 154
7.6.1 長短記憶(LSTM)單元 155
7.6.2 門控循環(huán)單元(GRU) 157
7.6.3 只有忘記門的LSTM(JANET)單元 158
7.6.4 獨立循環(huán)(IndRNN)單元 158
7.6.5 雙向RNN結(jié)構(gòu) 159
7.7 實例11:用循環(huán)神經(jīng)網(wǎng)絡(luò)訓(xùn)練語言模型 160
7.7.1 什么是語言模型 161
7.7.2 詞表與詞向量 161
7.7.3 詞向量的原理與實現(xiàn) 161
7.7.4 NLP中多項式分布 162
7.7.5 循環(huán)神經(jīng)網(wǎng)絡(luò)的實現(xiàn) 163
7.7.6 實現(xiàn)語言模型的思路與步驟 164
7.7.7 代碼實現(xiàn):準(zhǔn)備樣本 165
7.7.8 代碼實現(xiàn):構(gòu)建循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)模型 167
7.7.9 代碼實現(xiàn):實例化模型類,并訓(xùn)練模型 168
7.7.10 代碼實現(xiàn):運行模型生成句子 171
7.8 過擬合問題及優(yōu)化技巧 172
7.8.1 實例12:訓(xùn)練具有過擬合問題的模型 172
7.8.2 改善模型過擬合的方法 175
7.8.3 了解正則化 175
7.8.4 實例13:用L2正則改善模型的過擬合狀況 176
7.8.5 實例14:通過增大數(shù)據(jù)集改善模型的過擬合狀況 178
7.8.6 Dropout方法 179
7.8.7 實例15: 通過Dropout方法改善模型的過擬合狀況 180
7.8.8 全連接網(wǎng)絡(luò)的深淺與泛化能力的聯(lián)系 182
7.8.9 了解批量歸一化(BN)算法 182
7.8.10 實例16: 手動實現(xiàn)批量歸一化的計算方法 185
7.8.11 實例17: 通過批量歸一化方法改善模型的過擬合狀況 187
7.8.12 使用批量歸一化方法時的注意 事項 188
7.8.13 擴(kuò)展:多種批量歸一化算法介紹 188
7.9 神經(jīng)網(wǎng)絡(luò)中的注意力機(jī)制 189
7.9.1 注意力機(jī)制的實現(xiàn) 189
7.9.2 注意力機(jī)制的軟、硬模式 190
7.9.3 注意力機(jī)制模型的原理 190
7.9.4 多頭注意力機(jī)制 191
7.9.5 自注意力機(jī)制 192
7.10 實例18:利用注意力循環(huán)神經(jīng)網(wǎng)絡(luò)對圖片分類 192
7.10.1 循環(huán)神經(jīng)網(wǎng)絡(luò)處理圖片分類任務(wù)的原理 192
7.10.2 代碼實現(xiàn):搭建LSTM網(wǎng)絡(luò)模型 193
7.10.3 代碼實現(xiàn):構(gòu)建注意力機(jī)制類 193
7.10.4 代碼實現(xiàn):構(gòu)建輸入數(shù)據(jù)并訓(xùn)練模型 196
7.10.5 使用并評估模型 197
7.10.6 擴(kuò)展1:使用梯度剪輯技巧優(yōu)化訓(xùn)練過程 197
7.10.7 擴(kuò)展2:使用JANET單元完成RNN 198
7.10.8 擴(kuò)展3:使用IndRNN單元實現(xiàn)RNN 198
第8章 無監(jiān)督學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò) 199
8.1 快速了解信息熵 200
8.1.1 信息熵與概率的計算關(guān)系 200
8.1.2 聯(lián)合熵 202
8.1.3 條件熵 202
8.1.4 交叉熵 203
8.1.5 相對熵——KL散度 203
8.1.6 JS散度 204
8.1.7 互信息 204
8.2 通用的無監(jiān)督模型——自編碼神經(jīng)網(wǎng)絡(luò)與對抗神經(jīng)網(wǎng)絡(luò) 205
8.3 自編碼神經(jīng)網(wǎng)絡(luò) 206
8.3.1 自編碼神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu) 206
8.3.2 自編碼神經(jīng)網(wǎng)絡(luò)的計算過程 206
8.3.3 自編碼神經(jīng)網(wǎng)絡(luò)的作用與意義 207
8.3.4 變分自編碼神經(jīng)網(wǎng)絡(luò) 207
8.3.5 條件變分自編碼神經(jīng)網(wǎng)絡(luò) 208
8.4 實例19:用變分自編碼神經(jīng)網(wǎng)絡(luò)模型生成模擬數(shù)據(jù) 208
8.4.1 變分自編碼神經(jīng)網(wǎng)絡(luò)模型的結(jié)構(gòu)介紹 208
8.4.2 代碼實現(xiàn):引入模塊并載入樣本 209
8.4.3 代碼實現(xiàn):定義變分自編碼神經(jīng)網(wǎng)絡(luò)模型的正向結(jié)構(gòu) 210
8.4.4 變分自編碼神經(jīng)網(wǎng)絡(luò)模型的反向傳播與KL散度的應(yīng)用 211
8.4.5 代碼實現(xiàn):完成損失函數(shù)和訓(xùn)練函數(shù) 212
8.4.6 代碼實現(xiàn):訓(xùn)練模型并輸出可視化結(jié)果 213
8.4.7 代碼實現(xiàn):提取樣本的低維特征并進(jìn)行可視化 214
8.4.8 代碼實現(xiàn):可視化模型的輸出空間 215
8.5 實例20:用條件變分自編碼神經(jīng)網(wǎng)絡(luò)生成可控模擬數(shù)據(jù) 216
8.5.1 條件變分自編碼神經(jīng)網(wǎng)絡(luò)的實現(xiàn) 216
8.5.2 代碼實現(xiàn):定義條件變分自編碼神經(jīng)網(wǎng)絡(luò)模型的正向結(jié)構(gòu) 217
8.5.3 代碼實現(xiàn):訓(xùn)練模型并輸出可視化結(jié)果 218
8.6 對抗神經(jīng)網(wǎng)絡(luò) 219
8.6.1 對抗神經(jīng)網(wǎng)絡(luò)的工作過程 219
8.6.2 對抗神經(jīng)網(wǎng)絡(luò)的作用 220
8.6.3 GAN模型難以訓(xùn)練的原因 220
8.6.4 WGAN模型——解決GAN難以訓(xùn)練的問題 221
8.6.5 分析WGAN的不足 222
8.6.6 WGAN-gp模型——更容易訓(xùn)練的GAN模型 223
8.6.7 條件GAN 2248.6.8 帶有W散度的GAN——WGAN-div 225
8.7 實例21:用WGAN-gp模型生成模擬數(shù)據(jù) 226
8.7.1 DCGAN中的全卷積 226
8.7.2 上采樣與下采樣 227
8.7.3 實例歸一化 228
8.7.4 代碼實現(xiàn):引入模塊并載入樣本 228
8.7.5 代碼實現(xiàn):定義生成器與判別器 229
8.7.6 激活函數(shù)與歸一化層的位置關(guān)系 231
8.7.7 代碼實現(xiàn):定義函數(shù)完成梯度懲罰項 234
8.7.8 代碼實現(xiàn):定義模型的訓(xùn)練函數(shù) 235
8.7.9 代碼實現(xiàn):定義函數(shù),可視化模型結(jié)果 237
8.7.10 代碼實現(xiàn):調(diào)用函數(shù)并訓(xùn)練模型 237
8.7.11 練習(xí)題 238
8.8 實例22:用條件GAN生成可控模擬數(shù)據(jù) 239
8.8.1 代碼實現(xiàn):定義條件GAN模型的正向結(jié)構(gòu) 239
8.8.2 代碼實現(xiàn):調(diào)用函數(shù)并訓(xùn)練模型 240
8.9 實例23:實現(xiàn)帶有W散度的GAN——WGAN-div模型 241
8.9.1 代碼實現(xiàn):完成W散度的損失函數(shù) 241
8.9.2 代碼實現(xiàn):定義訓(xùn)練函數(shù)來訓(xùn)練模型 242
8.10 散度在神經(jīng)網(wǎng)絡(luò)中的應(yīng)用 243
8.10.1 f-GAN框架 243
8.10.2 基于f散度的變分散度最小化方法 243
8.10.3 用Fenchel共軛函數(shù)實現(xiàn)f-GAN 244
8.10.4 f-GAN中判別器的激活函數(shù) 246
8.10.5 互信息神經(jīng)估計 247
8.10.6 實例24:用神經(jīng)網(wǎng)絡(luò)估計互信息 249
8.10.7 穩(wěn)定訓(xùn)練GAN模型的經(jīng)驗和技巧 252
8.11 實例25:用最大化深度互信息模型執(zhí)行圖片搜索器 253
8.11.1 DIM模型的原理 254
8.11.2 DIM模型的結(jié)構(gòu) 254
8.11.3 代碼實現(xiàn):加載CIFAR數(shù)據(jù)集 257
8.11.4 代碼實現(xiàn):定義DIM模型 260
8.11.5 代碼實現(xiàn):實例化DIM模型并進(jìn)行訓(xùn)練 262
8.11.6 代碼實現(xiàn):加載模型搜索圖片 264
第9章 快速了解圖神經(jīng)網(wǎng)絡(luò)——少量樣本也可以訓(xùn)練模型 269
9.1 圖神經(jīng)網(wǎng)絡(luò)的相關(guān)基礎(chǔ)知識 270
9.1.1 歐氏空間與非歐氏空間 270
9.1.2 圖 270
9.1.3 圖相關(guān)的術(shù)語和度量 270
9.1.4 圖神經(jīng)網(wǎng)絡(luò) 271
9.1.5 GNN的動機(jī) 271
9.2 矩陣的基礎(chǔ) 272
9.2.1 轉(zhuǎn)置矩陣 272
9.2.2 對稱矩陣及其特性 272
9.2.3 對角矩陣與單位矩陣 272
9.2.4 哈達(dá)馬積 273
9.2.5 點積 273
9.2.6 對角矩陣的特性與操作方法 273
9.2.7 度矩陣與鄰接矩陣 275
9.3 鄰接矩陣的幾種操作 275
9.3.1 獲取有向圖的短邊和長邊 276
9.3.2 將有向圖的鄰接矩陣轉(zhuǎn)成無向圖的鄰接矩陣 277
9.4 實例26:用圖卷積神經(jīng)網(wǎng)絡(luò)為論文分類 278
9.4.1 CORA數(shù)據(jù)集 278
9.4.2 代碼實現(xiàn):引入基礎(chǔ)模塊并設(shè)置運行環(huán)境 279
9.4.3 代碼實現(xiàn):讀取并解析論文數(shù)據(jù) 279
9.4.4 代碼實現(xiàn):讀取并解析論文關(guān)系數(shù)據(jù) 281
9.4.5 代碼實現(xiàn):加工圖結(jié)構(gòu)的矩陣數(shù)據(jù) 283
9.4.6 代碼實現(xiàn):將數(shù)據(jù)轉(zhuǎn)為張量,并分配運算資源 284
9.4.7 代碼實現(xiàn):定義Mish激活函數(shù)與圖卷積操作類 284
9.4.8 代碼實現(xiàn):搭建多層圖卷積網(wǎng)絡(luò) 286
9.4.9 代碼實現(xiàn):用Ranger優(yōu)化器訓(xùn)練模型并可視化結(jié)果 287
9.5 圖卷積神經(jīng)網(wǎng)絡(luò) 290
9.5.1 圖結(jié)構(gòu)與拉普拉斯矩陣的關(guān)系 290
9.5.2 拉普拉斯矩陣的3種形式 291
9.6 擴(kuò)展實例:用Multi-sample Dropout優(yōu)化模型的訓(xùn)練速度 291
9.6.1 Multi-sample Dropout方法 292
9.6.2 代碼實現(xiàn):為圖卷積模型添加 Multi-sample Dropout方法 292
9.6.3 代碼實現(xiàn):使用帶有Multi-sample Dropout方法的圖卷積模型 293
9.7 從圖神經(jīng)網(wǎng)絡(luò)的視角看待深度學(xué)習(xí) 294
9.8 圖神經(jīng)網(wǎng)絡(luò)使用拉普拉斯矩陣的原因 295
9.8.1 節(jié)點與鄰接矩陣的點積作用 295
9.8.2 拉普拉斯矩陣的點積作用 296
9.8.3 重新審視圖卷積的擬合本質(zhì) 296
9.8.4 點積計算并不是唯一方法 296
第 10章 基于空間域的圖神經(jīng)網(wǎng)絡(luò)實現(xiàn) 297
10.1 重新認(rèn)識圖卷積神經(jīng)網(wǎng)絡(luò) 298
10.1.1 基于譜域的圖處理 298
10.1.2 基于頂點域的圖處理 298
10.1.3 基于頂點域的圖卷積 298
10.1.4 圖卷積的特性 299
10.2 實例27:用圖注意力神經(jīng)網(wǎng)絡(luò)為論文分類 300
10.2.1 圖注意力網(wǎng)絡(luò) 300
10.2.2 工程部署 301
10.2.3 代碼實現(xiàn):對鄰接矩陣進(jìn)行對稱歸一化拉普拉斯矩陣轉(zhuǎn)化 301
10.2.4 代碼實現(xiàn):搭建圖注意力神經(jīng)網(wǎng)絡(luò)層 301
10.2.5 代碼實現(xiàn):搭建圖注意力模型類 302
10.2.6 代碼實現(xiàn):實例化圖注意力模型,并進(jìn)行訓(xùn)練與評估 303
10.2.7 常用的圖神經(jīng)網(wǎng)絡(luò)庫 304
10.3 圖神經(jīng)網(wǎng)絡(luò)常用庫——DGL庫 305
10.3.1 DGL庫的實現(xiàn)與性能 305
10.3.2 安裝DGL庫的方法及注意事項 305
10.3.3 DGL庫中的數(shù)據(jù)集 306
10.3.4 DGL庫中的圖 307
10.3.5 DGL庫中的內(nèi)聯(lián)函數(shù) 307
10.3.6 擴(kuò)展:了解PyG庫 307
10.4 DGLGraph圖的基本操作 308
10.4.1 DGLGraph圖的創(chuàng)建與維護(hù) 308
10.4.2 查看DGLGraph圖中的度 309
10.4.3 DGLGraph圖與NetWorkx圖的相互轉(zhuǎn)化 310
10.4.4 NetWorkx庫 311
10.4.5 DGLGraph圖中頂點屬性的操作 313
10.4.6 DGLGraph圖中邊屬性的操作 314
10.4.7 DGLGraph圖屬性操作中的注意事項 314
10.4.8 使用函數(shù)對圖的頂點和邊進(jìn)行計算 315
10.4.9 使用函數(shù)對圖的頂點和邊進(jìn)行過濾 315
10.4.10 DGLGraph圖的消息傳播 316
10.4.11 DGL庫中的多圖處理 317
10.5 實例28:用帶有殘差結(jié)構(gòu)的多層GAT模型實現(xiàn)論文分類 318
10.5.1 代碼實現(xiàn):使用DGL數(shù)據(jù)集加載CORA樣本 319
10.5.2 用鄰居聚合策略實現(xiàn)GATConv 321
10.5.3 代碼實現(xiàn):用DGL庫中的GATConv搭建多層GAT模型 323
10.5.4 代碼實現(xiàn):使用早停方式訓(xùn)練模型并輸出評估結(jié)果 324
10.6 圖卷積模型的缺陷 327
10.6.1 全連接網(wǎng)絡(luò)的特征與缺陷 327
10.6.2 圖卷積模型的缺陷 328
10.6.3 彌補(bǔ)圖卷積模型缺陷的方法 328
10.6.4 從圖結(jié)構(gòu)角度理解圖卷積原理及缺陷 328
10.7 實例29:用簡化圖卷積模型實現(xiàn)論文分類 329
10.7.1 SGC的網(wǎng)絡(luò)結(jié)構(gòu) 330
10.7.2 DGL庫中SGC模型的實現(xiàn)方式 331
10.7.3 代碼實現(xiàn):搭建SGC模型并進(jìn)行訓(xùn)練 333
10.7.4 擴(kuò)展: SGC模型的不足 334
10.8 實例30:用圖濾波神經(jīng)網(wǎng)絡(luò)模型實現(xiàn)論文分類 334
10.8.1 GfNN的結(jié)構(gòu) 334
10.8.2 代碼實現(xiàn):搭建GfNN模型并進(jìn)行訓(xùn)練 335
10.9 實例31:用深度圖互信息模型實現(xiàn)論文分類 337
10.9.1 DGI模型的原理與READOUT函數(shù) 337
10.9.2 代碼實現(xiàn):搭建多層SGC網(wǎng)絡(luò) 338
10.9.3 代碼實現(xiàn):搭建編碼器和判別器 339
10.9.4 代碼實現(xiàn):搭建DGI模型并進(jìn)行訓(xùn)練 340
10.9.5 代碼實現(xiàn):利用DGI模型提取特征并進(jìn)行分類 342
10.10 實例32:用圖同構(gòu)網(wǎng)絡(luò)模型實現(xiàn)論文分類 344
10.10.1 多重集與單射 344
10.10.2 GIN模型的原理與實現(xiàn) 344
10.10.3 代碼實現(xiàn):搭建多層GIN模型并進(jìn)行訓(xùn)練 346
10.11 實例33:用APPNP模型實現(xiàn)論文分類 347
10.11.1 APPNP模型的原理與實現(xiàn) 347
10.11.2 代碼實現(xiàn):搭建APPNP模型并進(jìn)行訓(xùn)練 349
10.12 實例34:用JKNet模型實現(xiàn)論文分類 351
10.12.1 JKNet模型結(jié)構(gòu) 351
10.12.2 代碼實現(xiàn):修改圖數(shù)據(jù)的預(yù)處理部分 352
10.12.3 代碼實現(xiàn):搭建JKNet模型并進(jìn)行訓(xùn)練 352
10.13 總結(jié) 355

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號