開發者傳授PyTorch秘笈

開發者傳授PyTorch秘笈 pdf epub mobi txt 电子书 下载 2025

陳昭明
图书标签:
  • PyTorch
  • 深度学习
  • 机器学习
  • 神经网络
  • Python
  • 开发者
  • 教程
  • 实战
  • 模型构建
  • 计算机视觉
想要找书就要到 小特书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

~ 2022 開發者唯一指定 PyTorch 祕笈!~
深度學習【必備數學與統計原理】✕【圖表說明】✕【PyTorch 實際應用】

  ★ 作者品質保證 ★
  經過眾多專家與學者試閱昭明老師著作皆給【5 顆星】滿分評價!

  ~ 從基礎理解到 PyTorch 獨立開發,一氣呵成 ~
  本書專為 AI 開發者奠定扎實基礎,從數學統計 ► 自動微分 ► 梯度下降 ► 神經層,由淺入深介紹深度學習的原理,並透過大量 PyTorch 框架應用實作各種演算法:

  ● CNN (卷積神經網路)
  ● YOLO (物件偵測)
  ● GAN (生成對抗網路)
  ● DeepFake (深度偽造)
  ● OCR (光學文字辨識)
  ● ANPR (車牌辨識)
  ● ASR (自動語音辨識)
  ● BERT / Transformer
  ● 臉部辨識
  ● Knowledge Graph (知識圖譜)
  ● NLP (自然語言處理)
  ● ChatBot
  ● RL (強化學習)
  ● XAI (可解釋的 AI)

本書特色

  入門深度學習、實作各種演算法最佳教材!
  ★以【統計/數學】為出發點,介紹深度學習必備的數理基礎
  ★以【程式設計取代定理證明】,讓離開校園已久的在職者不會看到一堆數學符號就心生恐懼,縮短學習歷程,增進學習樂趣
  ★摒棄長篇大論,輔以【大量圖表說明】介紹各種演算法
  ★【完整的範例程式】及【各種演算法的延伸應用】!直接可在實際場域應用。
  ★介紹日益普及的【演算法與相關套件】的使用
  ★介紹 PyTorch 最新版本功能
  ★與另一本姊妹作《深度學習–最佳入門邁向 AI 專題實戰》搭配,可同時學會 PyTorch 與 TensorFlow
 
深入探索 Python 编程与数据科学的广袤天地:一本面向实战的编程指南 本书籍并非关于 PyTorch 的深度学习实践教程,而是聚焦于构建稳健、高效且具有前瞻性的 Python 编程基础,并将其应用于数据处理、科学计算及现代软件工程实践的综合性指导手册。 我们将带领读者跳脱特定框架的束缚,构建起能够适应未来技术变革的坚实编程内功。 --- 第一部分:Python 核心编程范式的精进与重构 本部分旨在将读者从“会用 Python”提升至“精通 Python”的境界,强调语言的底层机制、惯用法(Idioms)以及高性能实现。 第一章:Python 运行机制与内存管理:理解“为什么” 我们将深入探讨 Python 解释器(CPython)的工作原理,包括字节码的生成与执行、调用栈的构建过程。重点关注 Python 的垃圾回收机制(引用计数与分代回收),并教授如何利用 `gc` 模块进行调试和优化。理解这些底层机制是编写高效代码的前提。 GIL(全局解释器锁)的深度剖析: 它如何影响多线程程序的性能?何时应该使用多线程,何时应转向多进程或异步编程?我们将提供详尽的对比分析和应用场景决策树。 数据结构的原生优化: 深入研究列表(List)、字典(Dict)和集合(Set)在 C 语言层面是如何实现的。探究哈希冲突解决机制、动态数组的扩容策略,并教授如何通过选择正确的数据结构来避免不必要的性能损耗。 描述符(Descriptors)与元编程基础: 讲解 Python 中的“一切皆对象”的真正含义。如何使用描述符协议(`__get__`, `__set__`, `__delete__`)来定制属性的访问行为,为理解装饰器和类的高级特性打下基础。 第二章:函数式编程与迭代器的艺术 Python 并非纯粹的函数式语言,但其对高阶函数的支持为代码的简洁性和可测试性提供了强大助力。本章将侧重于如何运用函数式思维来重构面向对象代码。 惰性求值与生成器(Generators): 掌握 `yield` 关键字的真正威力。构建高效的流式数据处理管道,避免在内存中加载庞大的数据集。我们将实现自定义的无限序列生成器和状态机。 内置高阶函数与 `functools` 模块: 深入应用 `map`, `filter`, `reduce`(及其在 Python 3 中的演变)。重点讲解 `functools` 模块中的 `partial`(部分应用)、`wraps`(装饰器中的标准实践)以及 `lru_cache`(高效的函数结果缓存)。 可调用对象(Callables)的构建: 不仅限于函数,我们将探讨类实例如何通过实现 `__call__` 方法变为可调用对象,以及如何利用它们来创建状态化的闭包(Closures)和策略模式的优雅实现。 第三章:类型提示(Type Hinting)与静态分析的威力 在构建大型、长期维护的项目时,缺乏类型信息是引入 Bug 的主要来源。本章将彻底拥抱现代 Python 的类型系统。 PEP 484 与 `typing` 模块的全面指南: 掌握 `Union`, `Optional`, `Any`, `TypeVar` 等核心类型定义符。学习如何精确描述复杂的数据结构,如嵌套的泛型容器。 运行时类型检查与动态验证: 结合使用 `mypy` 进行静态分析,同时介绍如 Pydantic 等库,如何在运行时根据类型定义进行数据序列化和验证,确保数据输入和输出的可靠性。 协议(Protocols)与鸭子类型(Duck Typing)的现代化结合: 学习如何使用 `typing.Protocol` 来定义清晰的接口契约,从而在保持 Python 灵活性的同时,获得静态类型检查带来的结构化优势。 --- 第二部分:面向高性能与可扩展性的工程实践 本部分将视角从单文件代码提升至多模块、高并发的工程实践层面,聚焦于如何让 Python 代码运行得更快、更稳定。 第四章:异步编程(Asyncio)的架构设计 异步 I/O 是现代网络服务和高并发数据采集的基石。本章将深入 `asyncio` 生态系统,避免常见的陷阱。 事件循环(Event Loop)的运作机制: 理解 `async`/`await` 语法背后的协作式多任务处理模型。何时应使用 `run_until_complete`,何时应使用 `create_task`。 并发控制与同步原语: 掌握 `asyncio.Lock`, `Semaphore`, `Event` 等异步同步工具,确保在并发访问共享资源时的线程安全(或更准确地说是协程安全)。 高级 I/O 操作: 实践使用 `aiohttp` 进行高性能网络请求,以及如何结合 `asyncpg` 或其他异步数据库驱动,构建全栈的异步应用骨架。 第五章:C 扩展与性能瓶颈的突破 当纯 Python 无法满足性能要求时,我们需要与底层语言对接。本章讲解如何在不依赖特定框架的前提下,实现性能飞跃。 Cython 优化实战: 从静态类型声明开始,将关键热点代码编译成 C 扩展。讲解如何使用 Cython 来绕过 GIL,实现真正的并行计算。 Python C API 基础: 对希望深入理解内存布局和引用计数的读者,我们将介绍如何直接调用 C API 来创建自定义的、高性能的 Python 数据类型和函数。 内存视图(Memory Views)与零拷贝: 探索如何使用 `memoryview` 在不复制数据的情况下,安全地在 Python 对象和 C/C++ 代码之间共享底层缓冲区,这对于处理大型 NumPy 数组或二进制数据至关重要。 第六章:测试、调试与代码质量保障 可靠的软件依赖于严格的验证流程。本章关注如何构建一个自我修复和自我验证的代码体系。 高级单元测试策略: 超越基础的 `unittest` 或 `pytest`。学习如何使用参数化测试(Parametrization)来覆盖更广的输入空间,以及如何有效地使用Mocking来隔离外部依赖。 测试驱动开发(TDD)的实践流程: 在没有深度学习模型作为目标的情况下,如何将 TDD 原则应用于数据处理管道和业务逻辑层的开发。 调试工具箱: 熟练使用 `pdb` 和 `ipdb` 进行交互式调试。掌握利用 `timeit` 模块进行微基准测试,并学习如何使用 Profiling 工具(如 cProfile) 精准定位程序性能瓶颈,而非凭感觉优化。 --- 总结:构建跨领域的通用技能树 本书籍的最终目标是培养读者对 Python 语言的深刻理解和工程化能力。它关注的是如何高效地使用 Python 这一工具来解决抽象的计算问题,无论这些问题最终是应用在传统的 Web 服务、高性能数据处理流水线、系统级工具开发,还是其他任何需要计算能力支撑的领域。掌握这些核心技能,将使读者在面对任何新的技术栈(包括但不限于深度学习框架)时,都能迅速理解其底层机制并做出最优的技术选型与性能优化决策。

著者信息

作者簡介

陳昭明


  ●曾任職於 IBM、工研院等全球知名企業
  ●IT 邦幫忙 2018 年 AI 組【冠軍】
  ●多年 AI 課程講授經驗

 

图书目录

第一篇/深度學習導論
1 深度學習 (Deep Learning) 導論
1-1人工智慧的三波浪潮
1-2 AI的學習地圖
1-3 TensorFlow vs. PyTorch
1-4機器學習開發流程
1-5開發環境安裝
1-6 免費雲端環境開通
 
2 神經網路 (Neural Network) 原理
2-1必備的數學與統計知識
2-2萬般皆自『迴歸』起
2-3神經網路
 
第二篇/PyTorch 基礎篇
3 PyTorch 學習路徑與主要功能
3-1 PyTorch學習路徑
3-2張量運算
3-3自動微分(Automatic Differentiation)
3-4 神經層(Neural Network Layer)
3-5 總結
 
4 神經網路實作
4-1撰寫第一支神經網路程式
4-2  模型種類
4-3 神經層(Layer)
4-4 激勵函數(Activation Functions)
4-5  損失函數(Loss Functions)
4-6  優化器(Optimizer)
4-7  效能衡量指標(Performance Metrics)
4-8  超參數調校(Hyperparameter Tuning)
 
5 PyTorch 進階功能
5-1  資料集(Dataset)及資料載入器(DataLoader)
5-2 TensorBoard
5-3 模型佈署(Deploy)與TorchServe
 
6 卷積神經網路 (Convolutional Neural Network)
6-1卷積神經網路簡介
6-2卷積(Convolution)
6-3各式卷積
6-4池化層(Pooling Layer)
6-5  CNN模型實作
6-6  影像資料增補(Data Augmentation)
6-7  可解釋的AI(eXplainable AI, XAI)
 
7 預先訓練的模型 (Pre-trained Model)
7-1  預先訓練模型的簡介
7-2 採用完整的模型
7-3 採用部分模型
7-4 轉移學習(Transfer Learning)
7-5  Batch Normalization說明
 
第三篇/進階的影像應用
8 物件偵測 (Object Detection)
8-1 圖像辨識模型的發展
8-2 滑動視窗(Sliding Window)
8-3 方向梯度直方圖(HOG)
8-4 R-CNN物件偵測
8-5  R-CNN改良
8-6 YOLO演算法簡介
8-7 YOLO測試
8-8 YOLO環境建置
8-9 YOLO模型訓練
8-10 YOLOv5模型訓練
8-11 SSD演算法
8-12 物件偵測的效能衡量指標
8-13 總結
 
9 進階的影像應用
9-1  語義分割(Semantic Segmentation)介紹
9-2  自動編碼器(AutoEncoder)
9-3 語義分割(Semantic segmentation)實作
9-4 實例分割(Instance Segmentation)
9-5 風格轉換(Style Transfer) --人人都可以是畢卡索
9-6 臉部辨識(Facial Recognition)
9-7 光學文字辨識(OCR)
9-8 車牌辨識(ANPR)
9-9 卷積神經網路的缺點
 
10 生成對抗網路 (GAN)
10-1 生成對抗網路介紹
10-2 生成對抗網路種類
10-3 DCGAN
10-4 Progressive GAN
10-5 Conditional GAN
10-6 Pix2Pix
10-7 CycleGAN
10-8 GAN挑戰
10-9 深度偽造(Deepfake)
 
第四篇/自然語言處理
11 自然語言處理的介紹
11-1 詞袋(BOW)與TF-IDF
11-2 詞彙前置處理
11-3 詞向量(Word2Vec)
11-4 GloVe模型
11-5 中文處理
11-6 spaCy套件
 
12 自然語言處理的演算法
12-1 循環神經網路(RNN)
12-2 PyTorch 內建文本資料集
12-3 長短期記憶網路(LSTM)
12-4自訂資料集
12-5 時間序列預測
12-6 Gate Recurrent Unit (GRU)
12-7 股價預測
12-8 注意力機制(Attention Mechanism)
12-9 Transformer架構
12-10 BERT
12-11 Transformers套件
12-12 總結
 
13 聊天機器人 (ChatBot)
13-1 ChatBot類別
13-2 ChatBot設計
13-3 ChatBot實作
13-4 ChatBot工具套件
13-5 Dialogflow實作
13-6 結語
 
14 語音辨識
14-1語音基本認識
14-2語音前置處理
14-3 PyTorch語音前置處理
14-4 PyTorch內建語音資料集
14-5語音深度學習應用
14-6自動語音辨識(Automatic Speech Recognition)
14-7自動語音辨識實作
14-8 結語
 
第五篇/強化學習 (Reinforcement Learning)
15 強化學習
15-1 強化學習的基礎
15-2 強化學習模型
15-3 簡單的強化學習架構
15-4 Gym套件
15-5 Gym擴充功能
15-6 動態規劃(Dynamic Programming)
15-7 值循環(Value Iteration)
15-8 蒙地卡羅(Monte Carlo)
15-9 時序差分(Temporal Difference)
15-10 井字遊戲
15-11 連續型狀態變數與Deep Q-Learning演算法
15-12 Actor Critic演算法
15-13 實際應用案例
15-14 其他演算法
15-15 結論
 
第六篇/圖神經網路 (GNN)
16 圖神經網路 (GNN)
16-1 圖形理論(Graph Theory)
16-2 PyTorch Geometric(PyG)
16-3 圖神經網路(GNN)
16-4 結論
 

图书序言

  • ISBN:9786267146156
  • 規格:平裝 / 872頁 / 17 x 23 x 3.79 cm / 普通級 / 單色印刷 / 初版
  • 出版地:台灣

图书试读



為何撰寫本書


  從事機器學習教育訓練已屆五年,其間也在『IT邦幫忙』撰寫上百篇的文章(https://ithelp.ithome.com.tw/users/20001976/articles),從學員及讀者的回饋獲得許多寶貴意見,期望能將整個歷程集結成冊,同時,相關領域的進展也在飛速變化,過往的文章內容需要翻新,因此藉機再重整思緒,想一想如何能將演算法的原理解釋得更簡易清晰,協助讀者跨入AI的門檻,另外,也避免流於空談,盡量增加應用範例,希望能達到即學即用,不要有過多理論的探討。

  AI是一個將資料轉化為知識的過程,演算法就是過程中的生產設備,最後產出物是模型,再將模型植入各種硬體裝置,例如電腦、手機、智慧音箱、自駕車、醫療診斷儀器、…等,這些裝置就擁有特殊專長的智慧,再進一步整合各項技術就構建出智慧製造、智慧金融、智慧交通、智慧醫療、智慧城市、智慧家庭、…等應用系統。AI的應用領域如此的廣闊,個人精力有限,當然不可能具備十八般武藝,樣樣精通,惟有從基礎紮根,再擴及有興趣的領域,因此,筆者撰寫這本書的初衷,非常單純,就是希望讀者在紮根的過程中,貢獻一點微薄的力量。

  PyTorch vs. TensorFlow
  深度學習的初學者常會問『應該選擇PyTorch或 TensorFlow套件』,依筆者個人看法,PyTorch、TensorFlow好比倚天劍與屠龍刀,各有擅場,兩個套件的發展方向有所不同,例如在偵錯方面,PyTorch比較容易,但TensorFlow/Keras建模、訓練、預測都只要一行程式,另外,物件偵測主流演算法YOLO,第四版以TensorFlow開發,第五版則以PyTorch開發,若我們只懂TensorFlow,那就無法使用最新版了。

  PyTorch與TensorFlow基本設計概念是相通的,可以採用相同的approach,同時學會兩個套件,本書主要以PyTorch開發,另一本姊妹作『深度學習--最佳入門邁向AI專題實戰』,則以TensorFlow為主,兩相對照,可以發現要兼顧一點也不難,還可以比較彼此的優劣。

  本書主要的特點
  1.由於筆者身為統計人,希望能『以統計/數學為出發點』,介紹深度學習必備的數理基礎,但又不希望內文有太多數學公式的推導,讓離開校園已久的在職者看到一堆數學符號就心生恐懼,因此,嘗試以『程式設計取代定理證明』,縮短學習歷程,增進學習樂趣。

  2.PyTorch版本變動快速,幾乎每一、兩個月就更新一個小版本,並且不斷的推出新擴充模組,本書期望對PyTorch主體架構作完整性的介紹外,也儘可能對最新的模組功能作深入探討。

  3.各種演算法介紹以理解為主,輔以大量圖表說明,摒棄長篇大論。

  4.完整的範例程式及各種演算法的延伸應用,以實用為要,希望能觸發讀者靈感,能在專案或產品內應用。

  5.介紹日益普及的演算法與相關套件的使用,例如YOLO(物件偵測)、GAN(生成對抗網路)/DeepFake(深度偽造)、OCR(辨識圖像中的文字)、臉部辨識、BERT/Transformer、聊天機器人(ChatBot)、強化學習(Reinforcement Learning)、自動語音辨識(ASR) 、知識圖譜(Knowledge Graph)等。

  目標對象
  1.深度學習的入門者:必須熟悉Python程式語言及機器學習基本概念。
  2.資料工程師:以應用系統開發為職志,希望能應用各種演算法,進行實作。
  3.資訊工作者:希望能擴展深度學習知識領域。
  4.從事其他領域的工作,希望能一窺深度學習奧秘者。

  閱讀重點
  1.第一章介紹AI的發展趨勢,鑑古知今,瞭解前兩波AI失敗的原因,比較第三波發展的差異性。
  2.第二章介紹深度學習必備的統計/數學基礎,徹底理解神經網路求解的方法(梯度下降法)與原理。
  3.第三章介紹PyTorch基礎功能,包括張量(Tensor)運算、自動微分、神經層及神經網路模型。
  4.第四章開始實作,依照機器學習10項流程,以PyTorch撰寫完整的範例,包括各式的損失函數、優化器、效能衡量指標。
  5.第五章介紹PyTorch進階功能,包括各種工具,如資料集(Dataset)及資料載入器(DataLoader)、前置處理、TensorBoard以及TorchServe佈署工具,包括Web、桌面程式。
  6.第六~十章介紹圖像/視訊的演算法及各式應用。
  7.第十一~十四章介紹自然語言處理、語音及各式應用。
  8.第十五章介紹AlphaGo的基礎 -- 『強化學習』演算法。
  9.第十六章介紹 圖神經網路(Graph Neural Network, GNN)。

  本書範例程式碼全部收錄在github.com/mc6666/PyTorch_Book 。
 
  致謝
  因個人能力有限,還是有許多議題成為遺珠之憾,仍待後續的努力,過程中要感謝冠瑀在編  輯/校正/封面構想的盡心協助,也感謝深智出版社的大力支援,使本書得以順利出版,最後要謝謝家人的默默支持。

  內容如有疏漏、謬誤或有其他建議,歡迎來信指教(mkclearn@gmail.com)。

 

用户评价

评分

老實說,我個人是比較偏向新手階段,我對深度學習的熱情很高,但數學基礎和程式設計功力還在累積。我拿這本書來啃的時候,確實感受到了一股強大的壓力。我原本以為這是一本可以從零開始帶我學會PyTorch的工具書,結果它更像是一本「資深工程師的內部筆記」。書裡假設你對張量運算和基礎的機器學習概念已經非常熟悉了,所以一開始就跳進了比較進階的主題。雖然作者的文字很努力地想把複雜的概念解釋清楚,但對於我這種需要大量圖解和步驟分解的人來說,光是理解書中引用的那些公式和推導,就要花上好幾個小時查資料。我看到「量化訓練」那章的時候,幾乎就直接跳過了,因為那牽涉到很多底層的位元運算知識,遠超出了我目前的需求範圍。我猜,這本書比較適合已經在業界摸爬滾打幾年,想把知識體系補齊的「進階者」或「架構師」。

评分

總體而言,我對這本書的感覺是:它非常「實在」。它沒有用花俏的行銷語言去包裝那些大家都知道的基本功能,而是直接切入那些讓你頭痛、讓你效率低落的「痛點」。我記得我的一個業餘開發夥伴,他純粹是興趣驅使想做個小專案,他買了這本書之後,讀了幾章就束之高閣了。他跟我說,這本書讀起來不像在「學東西」,比較像是在「查文獻」或是「拆解引擎」。他覺得書裡寫的那些東西,很多都是他在網路上搜尋錯誤訊息時才會遇到的層級。這本書顯然是為了解決「如何把PyTorch的潛力榨乾」這個問題而寫的,而不是「PyTorch是什麼」這個問題。所以,如果你期待的是一本輕鬆入門的教學手冊,那可能會失望;但如果你是個已經對PyTorch有一定掌握,但總覺得性能卡住、或是在特定複雜場景下缺乏可靠參考依據的工程師,那麼這本書的價值就會顯現出來,它提供的不是捷徑,而是紮實的「內功心法」。

评分

有趣的是,我還認識一位在大學教書的教授,他拿這本書當作研究生課程的參考教材。他對這本書的態度是「中規中矩,但深度足夠」。他提到,這本書的優點在於它的結構非常嚴謹,從基礎的張量操作到複雜的部署策略,幾乎涵蓋了PyTorch整個生命週期的關鍵環節。教授特別欣賞書中關於「模型部署與邊緣計算」那一塊的論述,特別是提到如何使用`TorchScript`進行優化和序列化,以及如何將模型轉換到其他平台進行推理的實戰經驗。教授覺得,這本書沒有過度美化或簡化PyTorch的複雜性,而是真實地呈現了產業開發中會遇到的各種陷阱和權衡。雖然內容偏硬核,但因為編排得當,他可以根據不同的課程階段,選取適合的章節給學生,算是工具書中的上乘之作,可惜的是,書中對於一些新興的模型(例如近兩年冒出來的Transformer變體)的實作範例更新速度比較慢了一點。

评分

另一位我的學長,他是專門做電腦視覺的公司工程師,他對這本書的評價就完全不同了,他覺得這根本是本「救命書」。他之前在處理一個複雜的3D重建專案時,遇到模型訓練速度卡住、記憶體爆炸的問題,搞得他焦頭爛額。後來他翻到書裡專門講述如何自定義`DataLoader`以優化資料讀取效率、還有如何正確使用`torch.nn.DataParallel`和`torch.distributed`進行分散式訓練的部分,簡直是茅塞頓開。他特別讚賞書中對於「非標準」操作的處理方式,例如如何手動編寫高效能的自定義梯度計算(Custom Autograd),這讓他們在實作一些學術論文裡提到但官方函式庫沒直接支援的新型網路層時,變得可行多了。對他來說,這本書的價值在於提供了「解決方案」,而不只是「教學」,它讓你從「會用」晉升到「能修、能改、能優化」的境界,完全值回票價。

评分

這本《開發者傳授PyTorch秘笈》聽說評價兩極耶,我身邊幾個搞AI的朋友都有入手,但意見很不一致。像我那位專攻自然語言處理的同事,他就覺得這本書寫得太偏向底層的實作細節,對於他這種專注在模型架構和應用層面的開發者來說,有點殺雞用牛刀了。他特別提到,書裡花了大篇幅講解GPU記憶體管理和CUDA核心的優化技巧,雖然理論上很紮實,但實際操作中,他更習慣用高階的函式庫和框架直接調用,這些底層的東西對他來說有點像是「知道就好,不用特別去鑽研」。而且,他覺得書中的範例程式碼雖然完整,但有些範例耦合性太高,拿出來單獨測試或修改起來有點麻煩,不如網路上找得到的一些開源專案來得靈活。不過,他也承認,如果真要深入了解PyTorch底層是如何運作,或者需要進行極致效能調校的場景,這本書的深度是沒話說的,只是對一般應用開發者來說,可能門檻有點高,看到一半可能會有點吃力。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 ttbooks.qciss.net All Rights Reserved. 小特书站 版权所有