基於 PyTorch Lightning 的深度學習:使用 Python 快速構建高性能人工智能(AI)模型 Deep Learning with PyTorch Lightning: Swiftly build high-performance Artificial Intelligence (AI) models using Python

Kunal Sawarkar 江紅 、 余青松 、 余靖 等 譯

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

商品描述

本書介紹了使用PyTorch Lightning構建深度學習模型的實踐方法,旨在提高深度學習項目的生產率並保持靈活性。
讀者將學習如何在雲平台上配置PyTorch Lightning,了解其體系結構組件,並探索如何根據需求進行擴展。
本書適合對深度學習感興趣但不知從何學起的讀者,以及需要實踐指南的數據科學家。
它還適用於從其他框架過渡到PyTorch Lightning的專業數據科學家。
讀者需要具備Python編程的基礎知識以及統計學和深度學習的基本理解。
本書涵蓋了PyTorch Lightning的體驗之旅、深度學習模型構建、預訓練模型的遷移學習、PyTorch Lightning Bolts模型、
時間序列模型、深度生成式模型、半監督學習、自監督學習、模型部署和評分、以及規模化和管理訓練等內容。

目錄大綱

譯者序
前言
第一部分開始使用PyTorch Lightning
第1章PyTorch Lightning體驗之旅
1.1 PyTorch Lightning的獨特之處
1.1.1 第一個深度學習模型
1.1.2 數量眾多的框架
1.1.3 PyTorch與TensorFlow的比較
1.1.4 最佳平衡:PyTorch Lightning
1.2 <pip install>:PyTorch Lightning體驗之旅
1.3 了解PyTorch Lightning的關鍵組件
1.3.1 深度學習管道
1.定義問題
2.數據準備
3.建模
4.訓練
5.部署工程
1.3.2 PyTorch Lightning抽象層
1.4 使用PyTorch Lightning創建人工智能應用程序
1.圖像識別模型
2.遷移學習
3.NLP Transformer模型
4.Lightning Bolts
5.LSTM時間序列模型
6.自動編碼器生成式對抗網絡
7.結合CNN和RNN的半監督模型
8.對比學習的自監督模型
9.部署模型和評價模型
10.規模化模型和生產力技巧
1.5 進一步閱讀的資料
1.6 本章小結
第2章深入研究第一個深度學習模型
2.1 技術需求
2.2 神經網絡入門
2.2.1 為什麼使用神經網絡
2.2.2 關於XOR運算符
2.2.3 多層感知器體系結構
2.3 Hello World多層感知器模型
2.3.1 準備數據
2.3.2 構建模型
1.初始化模型
2.將輸入映射到模型
3.配置優化器
4.設置訓練參數
2.3.3 訓練模型
2.3.4 加載模型
2.3.5 預測分析
2.4 構建第一個深度學習模型
2.4.1 究竟什麼構成了“深度”
2.4.2 卷積神經網絡體系結構
2.5 用於圖像識別的捲積神經網絡模型
2.5.1 加載數據
2.5.2 構建模型
1.模型初始化
2.配置優化器
3.配置訓練和測試步驟
2.5.3 訓練模型
2.5.4 計算模型的準確率
2.5.5 模型改進練習
2.6 本章小結
第3章使用預訓練的模型進行遷移學習
3.1 技術需求
3.2 遷移學習入門
3.3 使用預訓練VGG-16體系結構的圖像分類器
3.3.1 加載數據
3.3.2 構建模型
3.3.3 訓練模型
3.3.4 計算模型的準確率
3.4 基於BERT transformer的文本分類
3.4.1 初始化模型
3.4.2 自定義輸入層
3.4.3 準備數據
3.4.4 設置數據加載器實例
3.4.5 設置模型訓練
3.4.6 設置模型測試
3.4.7 訓練模型
3.4.8 測量準確率
3.5 本章小結
第4章Bolts中的現成模型
4.1 技術需求
4.2 使用Bolts的邏輯回歸
4.2.1 加載數據集
4.2.2 構建邏輯回歸模型
4.2.3 訓練模型
4.2.4 測試模型
4.3 使用Bolts的生成式對抗網絡
4.3.1 加載數據集
4.3.2 配置生成式對抗網絡模型
4.3.3 訓練模型
4.3.4 加載模型
4.3.5 生成偽造圖像
4.4 使用Bolts的自動編碼器
4.4.1 加載數據集
1.篩選數據集
2.分批加載
4.4.2 配置自動編碼器模型
4.4.3 訓練模型
4.4.4 獲得訓練結果
4.5 本章小結
第二部分使用PyTorch Lightning解決問題
第5章時間序列模型
5.1 技術需求
5.2 時間序列概述
基於深度學習的時間序列預測
5.3 時間序列模型入門
5.4 基於循環神經網絡的每日天氣預報時間序列模型
5.4.1 加載數據
1.加載訓練數據集
2.加載測試數據集
5.4.2 特徵工程
5.4.3 創建自定義數據集
5.4.4 使用PyTorch Lightning配置循環神經網絡模型
1.定義模型層
2.設置優化器
3.傳遞訓練數據
4.配置訓練循環
5.4.5 訓練模型
5.4.6 度量訓練損失
5.4.7 加載模型
5.4.8 對測試數據集進行預測
5.5 基於長短期記憶網絡的時間序列模型
5.5.1 數據集分析
5.5.2 特徵工程
5.5.3 創建自定義數據集
1.加載數據
2.創建特徵
3.創建窗口化/系列化
4.計算數據集的長度
5.返回行數
5.5.4 使用PyTorch Lightning配置長短期記憶網絡模型
1.定義模型
2.設置優化器
3.設置數據
4.配置訓練循環
5.配置驗證循環
5.5.5 訓練模型
5.5.6 度量訓練損失
5.5.7 加載模型
5.5.8 對測試數據集進行預測
5.6 本章小結
第6章深度生成式模型
6.1 技術需求
6.2 生成式對抗網絡模型入門
6.3 使用生成式對抗網絡創建新的鳥類物種
6.3.1 加載數據集
6.3.2 特徵工程實用函數
6.3.3 配置鑑別器模型
1.定義參數
2.構建卷積層
6.3.4 配置生成器模型
1.第一個轉置卷積層
2.第二個轉置卷積層
3.第三個轉置卷積層
4.第四個轉置卷積層
5.第五個轉置卷積層(最後一層)
6.3.5 配置生成式對抗網絡模型
1.定義模型
2.配置優化器和損失函數
3.配置訓練循環
4.保存生成的虛假圖像
6.3.6 訓練生成式對抗網絡模型
6.3.7 獲取虛假鳥類圖像的輸出
6.4 本章小結
第7章半監督學習
7.1 技術需求
7.2 半監督學習入門
7.3 CNN-RNN體系結構概覽
7.4 為圖像生成說明文字
7.4.1 下載數據集
1.COCO數據集
2.提取數據集
7.4.2 組裝數據
1.篩選圖像及其說明文字
2.按類別選擇圖像
3.選擇說明文字
4.調整圖像大小
5.構建詞彙表
7.4.3 訓練模型
1.數據集
2.collate函數
3.數據加載器
4.混合CNN-RNN模型
5.CNN和RNN層
6.優化器設置
7.更改為RMSprop優化器
8.訓練損失
9.學習率
10.批次大小
11.啟動模型訓練
12.訓練進度
7.4.4 生成說明文字
1.圖像說明文字預測
2.中間結果
3.訓練結果
7.4.5 進一步改進的方向
7.5 本章小結
第8章自監督學習
8.1 技術需求
8.2 自監督學習入門
8.3 什麼是對比學習
8.4 SimCLR體系結構
8.5 用於圖像識別的SimCLR對比學習模型
8.5.1 收集數據集
8.5.2 設置數據增強
8.5.3 加載數據集
8.5.4 配置訓練
1.設置超參數
2.定義損失函數
3.定義編碼器
4.SimCLR管道
8.5.5 模型訓練
8.5.6 評估模型的性能
8.6 進一步改進的方向
8.7 本章小結
第三部分高級主題
第9章部署和評分模型
9.1 技術需求
9.2 在本地部署和評分深度學習模型
9.2.1 pickle(.PKL)模型文件格式
9.2.2 部署深度學習模型
9.2.3 保存和加載模型檢查點
9.2.4 使用Flask部署和評分模型
9.3 部署和評分可以移植的模型
9.3.1 ONNX的格式及其重要性
9.3.2 保存和加載ONNX模型
9.3.3 使用Flask部署和評分ONNX模型
9.4 進一步的研究方向
9.5 進一步閱讀的資料
9.6 本章小結
第10章規模化和管理訓練
10.1 技術需求
10.2 管理訓練
10.2.1 保存模型超參數
10.2.2 高效調試
10.2.3 使用TensorBoard監測訓練損失
10.3 規模化訓練
10.3.1 利用多個工作線程加速模型訓練
10.3.2 GPU/TPU訓練
10.3.3 混合精度訓練/16位精度訓練
10.4 控制訓練
10.4.1 使用雲計算時保存模型檢查點
10.4.2 更改檢查點功能的默認行為
10.4.3 從保存的檢查點恢復訓練
10.4.4 使用雲計算時保存下載和組裝的數據
10.5 進一步閱讀的資料
10.6 本章小結