Python深度學習:基於PyTorch 第2版

吳茂貴,郁明敏,楊本法,李濤 等著

買這商品的人也買了...

商品描述

這是一本能指導讀者快速掌握PyTorch和深度學習的著作,
從PyTorch的原理到應用,從深度學習到強化學習,本書提供了全棧解決方案。
第1版上市後銷量和口碑俱佳,是深度學習領域的暢銷書,被譽為PyTorch領域的標準著作。
第2版在第1版的基礎上,去蕪存菁,與時具進,根據PyTorch新版本全面升級,技術性、實戰性、針對性、
豐富性、易讀性均得到了進一步提升,必定能幫助讀者更輕鬆、更高效地進入深度學習的世界。
全書一共19章,在結構上分為三大部分:
第1部分(第1~4章) PyTorch基礎
首先有針對性地講解了Python和PyTorch的基石NumPy中的關鍵知識,
然後詳細講解了PyTorch的基礎知識、神經網絡工具箱和數據處理工具箱等內容,幫助讀者快速了解和掌握PyTorch。
第二部分(第5~10章) 深度學習基礎
依次講解了機器學習、視覺處理、自然語言處理、注意力機制、目標檢測、
語義分割、生成式深度學習等機器學習和深度學習的核心技術的原理和使用。
第三部分(第11~17章) 深度學習實踐
通過實戰案例的方式,詳細講解了PyTorch在人臉檢測和識別、遷移學習、
中英文互譯、圖像分類、語義分割、生成式網絡、對抗攻擊等領域的應用和解決方案。
第四部分(第18-19章) 強化學習
重點介紹了強化學習和深度強化學習的基礎理論、常用算法及相關實例。
更為重要的是,為了讓本書通俗易懂,在內容安排和寫作方式上也頗花了一番心思。
內容選擇上,廣泛涉獵、重點突出、注重實戰;內容安排上,實例切入、由淺入深、循序漸進;
表達形式上,深度抽象、化繁為簡、用圖說話。

作者簡介

吳茂貴
資深大資料和人工智慧技術專家,就職于中國外匯交易中心,在BI、
資料採擷與分析、資料倉庫、機器學習等領域工作超過20年。
在基於Spark、TensorFlow、PyTorch、Keras等的機器學習和深度學習方面有大量的工程實踐實踐。
著有《Python深度學習:基於TensorFlow》《深度實踐Spark機器學習》《自己動手做大資料系統》等著作。

郁明敏
資深商業分析師,從事互聯網金融演算法研究工作,專注於大資料、
機器學習以及資料視覺化的相關領域,擅長 Python、Hadoop、Spark 等技術,擁有豐富的實戰經驗。
曾獲“江蘇省TI杯大學生電子競技大賽”二等獎和“華為杯全國大學生數學建模大賽”二等獎。

楊本法
高級演算法工程師,在流程優化、資料分析、資料採擷等領域有10餘年實戰經驗,熟悉Hadoop和Spark技術棧。
有大量工程實踐經驗,做過的專案包括:推薦系統、銷售預測系統、
輿情監控系統、揀貨系統、報表視覺化、配送路線優化系統等。

李濤
資深AI技術工程師,對PyTorch、Caffe、TensorFlow等深度學習框架以及電腦視覺技術有深刻的理解和豐富的實踐經驗,
曾經參與和主導過服務機器人、無人售後店、搜索排序等多個人工智慧相關的項目。

張粵磊
資深大資料技術專家,飛谷雲創始人,有10餘年一線資料資料採擷與分析實戰經驗。
先後在諮詢、金融、互聯網行業擔任大資料平臺的技術負責人或架構師。

目錄大綱

前言
第1版前言
第一部分PyTorch基礎
第1章NumPy基礎知識2
1.1 生成NumPy數組3
1.1.1 數組屬性4
1.1.2 利用已有數據生成數組4
1.1.3 利用random 模塊生成數組5
1.1.4 生成特定形狀的多維數組7
1.1.5 利用arange、linspace
   函數生成數組8
1.2 讀取數據9
1.3 NumPy的算術運算11
1.3.1 逐元素操作11
1.3.2 點積運算12
1.4 數組變形13
1.4.1 修改數組的形狀13
1.4.2 合併數組16
1.5 批處理19
1.6 節省內存20
1.7 通用函數21
1.8 廣播機制23
1.9 小結24
第2章PyTorch基礎知識25
2.1 為何選擇PyTorch25
2.2 PyTorch的安裝配置26
2.2.1 安裝CPU版PyTorch26
2.2.2 安裝GPU版PyTorch28
2.3 Jupyter Notebook環境配置30
2.4 NumPy與Tensor31
2.4.1 Tensor概述31
2.4.2 創建Tensor32
2.4.3 修改Tensor形狀34
2.4.4 索引操作35
2.4.5 廣播機制35
2.4.6 逐元素操作36
2.4.7 歸併操作37
2.4.8 比較操作37
2.4.9 矩陣操作38
2.4.10 PyTorch與NumPy比較39
2.5 Tensor與autograd39
2.5.1 自動求導要點40
2.5.2 計算圖40
2.5.3 標量反向傳播41
2.5.4 非標量反向傳播42
2.5.5 切斷一些分支的反向傳播45
2.6 使用NumPy實現機器學習任務47
2.7 使用Tensor及autograd實現機器
   學習任務49
2.8 使用優化器及自動微分實現機器
   學習任務51
2.9 把數據集轉換為帶批量處理功能的
   迭代器52
2.10 使用TensorFlow 2實現機器
   學習任務54
2.11 小結55
第3章PyTorch神經網絡工具箱56
3.1 神經網絡核心組件56
3.2 構建神經網絡的主要工具57
3.2.1 nn.Module57
3.2.2 nn.functional58
3.3 構建模型59
3.3.1 繼承nn.Module基類構建模型59
3.3.2 使用nn.Sequential按層
   順序構建模型60
3.3.3 繼承nn.Module基類並應用
   模型容器來構建模型63
3.3.4 自定義網絡模塊66
3.4 訓練模型68
3.5 實現神經網絡實例69
3.5.1 背景說明69
3.5.2 準備數據70
3.5.3 可視化源數據71
3.5.4 構建模型72
3.5.5 訓練模型72
3.6 小結74
第4章PyTorch數據處理工具箱75
4.1 數據處理工具箱概述75
4.2 utils.data76
4.3 torchvision78
4.3.1 transforms78
4.3.2 ImageFolder79
4.4 可視化工具81
4.4.1 TensorBoard簡介81
4.4.2 用TensorBoard可視化
   神經網絡82
4.4.3 用TensorBoard可視化損失值83
4.4.4 用TensorBoard可視化特徵圖84
4.5 小結85
第二部分深度學習基礎
第5 章機器學習基礎88
5.1 機器學習的基本任務88
5.1.1 監督學習89
5.1.2 無監督學習89
5.1.3 半監督學習90
5.1.4 強化學習90
5.2 機器學習的一般流程90
5.2.1 明確目標91
5.2.2 收集數據91
5.2.3 數據探索與預處理91
5.2.4 選擇模型及損失函數91
5.2.5 評估及優化模型92
5.3 過擬合與欠擬合93
5.3.1 權重正則化93
5.3.2 dropout正則化94
5.3.3 批量歸一化97
5.3.4 層歸一化99
5.3.5 權重初始化99
5.4 選擇合適的激活函數100
5.5 選擇合適的損失函數101
5.6 選擇合適的優化器103
5.6.1 傳統梯度優化算法104
5.6.2 批量隨機梯度下降法105
5.6.3 動量算法106
5.6.4 Nesterov動量算法108
5.6.5 AdaGrad算法109
5.6.6 RMSProp算法111
5.6.7 Adam算法112
5.6.8 Yogi算法113
5.6.9 使用優化算法實例114
5.7 GPU加速116
5.7.1 單GPU加速116
5.7.2 多GPU加速117
5.7.3 使用GPU時的注意事項120
5.8 小結121
第6章視覺處理基礎122
6.1 從全連接層到卷積層122
6.1.1 圖像的兩個特性123
6.1.2 卷積神經網絡概述124
6.2 卷積層125
6.2.1 卷積核127
6.2.2 步幅129
6.2.3 填充130
6.2.4 多通道上的捲積131
6.2.5 激活函數134
6.2.6 卷積函數135
6.2.7 轉置卷積136
6.2.8 特徵圖與感受野137
6.2.9 全卷積網絡138
6.3 池化層139
6.3.1 局部池化140
6.3.2 全局池化140
6.4 現代經典網絡142
6.4.1 LeNet-5模型142
6.4.2 AlexNet模型143
6.4.3 VGG模型143
6.4.4 GoogLeNet模型144
6.4.5 ResNet模型145
6.4.6 DenseNet模型146
6.4.7 CapsNet模型148
6.5 使用卷積神經網絡實現CIFAR10
  ......