深度學習實踐 : 基於 TensorFlow 及 PyTorch 庫的編程指南
陳光齊
- 出版商: 化學工業
- 出版日期: 2026-02-01
- 售價: $408
- 語言: 簡體中文
- 頁數: 135
- ISBN: 7122493563
- ISBN-13: 9787122493569
-
相關分類:
DeepLearning
尚未上市,歡迎預購
相關主題
商品描述
《深度學習實踐—基於TensorFlow 及PyTorch 庫的編程指南》突破傳統深度學習教材先理論後實踐的模式,從直觀的實例應用入手,讓讀者快速體驗利用深度學習解決實際問題的過程。讀者將從運行實例程序開始,初步理解代碼的作用,並逐步學會自主調整模型參數、調試程序,以驗證其精度和效率。第1章介紹深度學習發展歷程及基本概念;第2章聚焦開發環境搭建,並給出快速示例,幫助讀者迅速開啟深度學習之旅,熟悉基礎操作環境;第3章介紹深度學習原理,結合FCNN、CNN、LSTM、GAN、Transformer 等典型模型示例,使讀者理解深度學習的核心理論與模型架構;第4 ~ 6章著重傳授Python 編程基礎,以及TensorFlow、PyTorch 這兩種主流深度學習框架的編程知識,為實際開發奠定編程基礎;第7章闡述張量概念與操作,幫助讀者掌握其關鍵特性與操作方法;第8章專註於網絡設計與超參數優化;第9、10章通過深度學習在計算機視覺與防災領域的應用實例,展現深度學習在實際場景中的強大應用能力,使讀者了解如何將所學知識運用到具體領域解決實際問題; 1章為程序代碼,讀者可掃二維碼獲取。本書特別適合需要快速入門人工智能深度學習解決實際問題的,智能建造、數值模擬等非AI 方向的技術人員、在校本科生、研究生。本書也可作為相關專業師生教學用書。
作者簡介
陳光齊,日本工程院院士,曾任九州大學土木系教授(2012-2023),現任河北工業大學長江講席教授,兼任中國巖石力學與工程學會人工智能技術實用化專業委員會主任委員。?主要從事巖石力學、數值模擬與人工智能在地質工程中的融合創新研究,包括但並不限於數值模擬技術的開發及應用、AI技術的實用化、自然災害風險評估、地震 運動現象等課題。自1989年多次獲得 科學技術進步獎、日本土木學會西部地區分會技術獎等獎勵。所研發的非連續變形分析DDA(DDAWorkTool)實用軟件,被 百余所大學、研究機構及企業所采用;首先提出高階流形元方法(Manifold Method); 提出“基於地震蹦極效應的破壞土石運動的多重加速模型”,成果解釋了滑坡的高速遠距離運動現象。陳光齊教授提出的“多重加速模型”深入解析了大地震引發高速遠程滑坡現象;基於PLGM(Pulse-like ground motion)的地震滑坡機制,為防震減災工程提供了科學的理論基礎;創新性 提出了滑坡引起的地質災害鏈概念,推動了系統防災研究方法的發展。為推廣非連續體的大變形數和剛體運動值模擬技術做出巨大貢獻。發表高水平SCI論文200余篇,培養博士研究生23名。
目錄大綱
第1章 緒論 001
1.1 什麼是深度學習? 002
1.2 深度學習的崛起及科學創新成果 002
1.3 Python、TensorFlow 及PyTorch 簡介 004
1.4 本書的目標與結構 004
第2章 快速入門 005
2.1 安裝Visual Studio 006
2.1.1 下載和安裝Visual Studio Community 006
2.1.2 下載和安裝Python 006
2.1.3 下載和安裝TensorFlow 及關聯庫 007
2.1.4 下載和安裝其他需要的庫 008
2.2 深度學習應用示例及環境檢核 008
第3章 深度學習的基本原理及示例 011
3.1 深度學習的工作原理及各網絡架構應用示例 012
3.2 全連接神經網絡(FCNN)架構及工作原理 013
3.2.1 全連接神經網絡架構 014
3.2.2 FCNN 的前向傳播計算 014
3.2.3 計算損失函數及梯度 015
3.2.4 反向傳播計算 016
3.2.5 利用TensorFlow 訓練FCNN 模型的步驟 017
3.2.6 利用PyTorch 訓練FCNN 模型的基本步驟 017
3.2.7 實例:全連接神經網絡(FCNN)模型應用 018
3.3 卷積神經網絡(CNN)架構及工作原理 022
3.3.1 CNN 方法的主要思路 022
3.3.2 二維卷積操作 023
3.3.3 卷積神經網絡架構 025
3.3.4 損失函數的計算 027
3.3.5 卷積網絡架構的梯度計算 027
3.3.6 池化操作 029
3.3.7 展平Flatten 操作 031
3.3.8 CNN 是對FCNN 的改良 032
3.3.9 實例:卷積神經網絡(CNN)模型的應用 032
3.4 循環神經網絡(RNN)架構及工作原理 038
3.4.1 RNN 的架構 039
3.4.2 RNN 的工作原理 039
3.4.3 長短期記憶網絡(LSTM)架構及工作原理 041
3.5 生成對抗網絡(GAN)架構及工作原理 043
3.5.1 生成器的工作原理 043
3.5.2 生成器的網絡架構 044
3.5.3 判別器的工作原理 045
3.5.4 判別器的網絡架構 046
3.5.5 模型訓練過程(損失計算、反向傳播與疊代訓練) 046
3.5.6 細節調整 047
3.5.7 實例:生成對抗網絡(GAN)模型的應用 047
3.6 Transformer 網絡架構 048
3.6.1 神經網絡架構的定義 048
3.6.2 前向傳播 049
3.6.3 損失函數的計算 050
3.6.4 反向傳播 050
3.6.5 疊代訓練 051
3.6.6 Transformer 網絡架構的優勢與應用 051
3.6.7 實例:Transformer 網絡架構的應用 051
第4章 Python 編程示例的代碼與釋義 053
4.1 Python 程序執行方式之一:交互式解釋器 054
4.2 Python 程序執行方式之二:利用Visual Studio進行編寫和運行 054
4.3 Python 程序的一般構成 056
4.4 第一部分:庫和模塊的導入 057
4.4.1 深度學習程序中所導入的常用庫 057
4.4.2 導入庫中部分模塊 058
4.5 第二部分:數據準備 059
4.6 第三部分:神經網絡分析的主要代碼 062
4.6.1 模型定義 062
4.6.2 輸出模型的架構概覽 064
4.6.3 模型編譯 064
4.6.4 模型訓練 065
4.6.5 模型評估 067
4.7 第四部分:實行預測 067
4.8 第五部分:結果的可視化 069
4.8.1 繪制真實值與預測值散點圖 069
4.8.2 誤差計算及繪制誤差分布直方圖 069
4.8.3 繪制特征重要性圖 069
4.8.4 可視化對部分樣本的預測結果 070
4.8.5 生成混淆矩陣及其可視化 071
4.8.6 生成分類模型的性能報告 071
4.8.7 繪制三個子圖:預測值與真值的比較,誤差及相對誤差圖 072
4.9 第六部分:保存數據集 073
4.10 Python 編程的基本規定 074
4.10.1 縮進、命名規範、代碼布局和註釋的要求 074
4.10.2 編碼風格 075
4.10.3 Python 的變量 075
4.10.4 控制結構 077
4.11 Python 的函數 080
4.11.1 Python 的內置函數及標準庫模塊 080
4.11.2 使用def 定義自定義函數 081
4.12 Python 面向對象編程 082
4.12.1 類和對象 082
4.12.2 類的繼承 084
4.12.3 封裝 084
4.13 PyTorch 中的類 085
4.14 文件操作 087
4.14.1 打開和關閉文件 087
4.14.2 讀取文件 088
4.14.3 寫入文件 088
4.14.4 使用 with 語句 089
4.14.5 二進制文件操作 089
4.14.6 文件和目錄管理 089
4.15 模塊、包和庫 089
4.15.1 模塊 090
4.15.2 包 090
4.15.3 庫 092
4.16 Python 標準庫 093
4.17 庫,包,模塊的導入 096
4.17.1 庫,包,模塊的導入方式 096
4.17.2 Python 標準庫的模塊 098
4.18 第三方庫函數 099
4.18.1 NumPy 矩陣計算與線性代數庫 099
4.18.2 Matplotlib 數據可視化庫 101
4.18.3 其他常用第三方庫 104
4.18.4 導入規則 111
4.19 Python 中的help() 和dir() 函數 111
4.19.1 help() 函數 111
4.19.2 dir() 函數 113
4.20 代碼中使用中文 113
4.21 異常處理 114
4.21.1 基本的異常捕獲及處理 115
4.21.2 自定義異常與異常鏈 115
4.21.3 常見異常處理模式 116
第5章 基於TensorFlow庫的深度學習編程 117
5.1 創建神經網絡模型 118
5.1.1 序貫模型 118
5.1.2 函數式API 118
5.1.3 自定義層與模型子類化 119
5.2 常用神經網絡層 120
5.2.1 全連接層 120
5.2.2 卷積層 120
5.2.3 標準卷積層 121
5.2.4 轉置卷積層 122
5.2.5 池化層 123
5.2.6 循環神經網絡層 124
5.2.7 長短期記憶網絡層 125
5.2.8 門控循環單元層 125
5.2.9 批歸一化層 126
5.2.10 其他功能層 127
5.3 編譯模型 128
5.4 訓練模型 128
5.4.1 訓練過程 128
5.4.2 權重更新 130
5.5 評估模型與預測 130
5.6 深度學習的幾個重要概念 131
5.6.1 模型輸入數據的形狀 131
5.6.2 激活函數 132
5.6.3 損失函數 134
5.6.4 評估模型性能的指標 135
5.6.5 優化器 136
5.6.6 正則化 138
第6章 基於PyTorch 庫的深度學習編程 139
6.1 創建神經網絡模型 140
6.1.1 順序模型方式創建模型 140
6.1.2 自定義模塊(繼承 nn.Module)方式創建模型 141
6.1.3 自定義層構建模型 142
6.1.4 Sequential + 自定義層 143
6.1.5 模型組合 143
6.2 神經網絡層 144
6.3 編譯模型 144
6.4 訓練模型 145
6.5 評估模型 145
6.6 進行預測 146
第7章 張量 147
7.1 Python、TensorFlow 及PyTorch中張量的異同點 148
7.2 Python 中TensorFlow 及PyTorch間的張量互換 150
7.3 常用維度的張量 150
第8章 神經網絡的設計及優化 151
8.1 神經網絡的設計 152
8.2 訓練集與測試集劃分的影響 153
8.2.1 交叉驗證 153
8.2.2 交叉驗證示例 154
8.3 超參數及其優化 155
8.4 網格搜索法 155
8.4.1 網格搜索法的主要思想和實現步驟 155
8.4.2 網格搜索法的實現示例 156
8.5 隨機搜索法 157
8.6 貝葉斯優化法優化超參數 158
8.6.1 貝葉斯優化法的主要思想、工作原理及特點 158
8.6.2 貝葉斯優化法的實現示例 159
8.7 方法比較與實例 161
8.7.1 數據集及分析目標 161
8.7.2 定義模型創建函數 162
8.7.3 網格搜索法優化超參數的結果 163
8.7.4 隨機搜索法優化超參數的結果 165
8.7.5 貝葉斯優化法優化超參數的結果 167
8.7.6 三種優化方法的結果比較 169
第9章 深度學習實踐——計算機視覺領域
9.1 ImageNet 數據庫及ILSVRC 奪冠模型 171
9.2 常用預訓練模型及其在圖像分類中的應用 171
9.2.1 預訓練模型下載 172
9.2.2 預訓練模型進行物體分類的精度驗證 173
9.2.3 直接訓練常用模型 179
9.2.4 遷移學習方法1:特征提取 180
9.2.5 遷移學習方法2:特征提取+ 微調 183
9.2.6 遷移學習:從單分類到多分類任務 186
9.3 常用預訓練模型在目標檢測中的應用 189
9.3.1 目標檢測模型架構的組成部分及其功能 189
9.3.2 將ResNet50 多分類模型改造成目標檢測程序的修改 190
9.3.3 利用Faster R-CNN 目標檢測框架 192
9.4 常用預訓練模型在語義分割中的應用 192
9.4.1 常見的語義分割模型 192
9.4.2 基於DeepLabv3+ 模型架構的語義分割 193
第10章 深度學習實踐——地質災害預測與監測 1 7 0
10.1 利用語義分割技術探測裂縫技術的應用 196
10.2 利用DeepLabv3+ 模型框架進行裂縫探測 197
10.2.1 DeepLab 模型系列概覽 197
10.2.2 Crack500 裂縫數據集 198
10.2.3 利用Xception 作為backbone的語義分割程序 199
10.2.4 裂紋檢測結果 201
10.3 利用遷移學習進行滑坡檢測 203
10.3.1 基於深度學習的語義分割模型DeepLabv3+的遷移學習實現 204
10.3.2 滑坡檢測結果 206
10.4 利用對象檢測技術支持海上搜救任務 208
10.4.1 海上搜救任務中的對象檢測挑戰與數據集 208
10.4.2 基於YOLOv5 的 baseline 模型 209
10.4.3 模型改進Sea-YOLOv5:移動窗口分層自註意力拓展頭 211
10.4.4 實驗結果與分析 213
10.5 基於深度學習的落石監測系統 215
10.5.1 系統概述與需求分析 216
10.5.2 數據集準備 217
10.5.3 核心算法實現 217
10.5.4 系統實現與實驗驗證 219
10.5.5 挑戰與展望 221
第11章 程序代碼 222
參考文獻 223
