PyTorch開發入門:深度學習模型的構建與程序實現
定 價:¥79
中 教 價:¥48.98 (6.20折)
庫 存 數: 0
《PyTorch開發入門:深度學習模型的構建與程序實現》以PyTorch為主要內容,介紹了其安裝和實際應用,共7章。其中,第1章介紹了PyTorch的包結構;第2章介紹了線性模型,并通過PyTorch的實際使用來實現線性回歸模型和邏輯回歸模型;第3章介紹了神經網絡,實際使用PyTorch創建一個多層感知器(Perceptron);第4章介紹了通過卷積神經網絡(CNN)進行的圖像處理,通過PyTorch實際進行CNN的圖像分類,低分辨率圖像到高分辨率的轉換,使用深度卷積生成對抗網絡(DCGAN)進行新的圖像生成以及遷移學習;第5章介紹了通過循環神經網絡(RNN)進行的自然語言處理,通過PyTorch實際進行文本的分類和文本的生成以及基于編碼器-解碼器模型的機器翻譯;第6章介紹了矩陣分解以及推薦系統的神經網絡構建;第7章介紹了PyTorch模型的應用程序嵌入,WebAPI的實際創建,Docker的打包發布,以及基于*新開放神經網絡交換(ONNX)標準的模型移植。
人工智能無疑是近年來熱門詞匯,而深度學習又是熱門中的熱門,對于想要進入人工智能行業的您來說,節省時間、快速入門首要問題。再多的知識也要實踐,現場實操,才是快速學習、消化的通路。《PyTorch開發入門:深度學習模型的構建與程序實現》正是這樣一本,從基礎理論講起,以實操驅動的方式全面展示技巧和方法,為您提供了快速入門機器學習的途徑,找到了學習的方法。
原書前言深度學習(Deep Learning)和神經網絡是機器學習,特別是計算機視覺(Computer Vision,CV)和自然語言處理(Natural Language Processing,NLP)、語音識別等應用領域熱門的話題。我敢肯定,即使不在IT 領域,也有許多讀者都聽說過這些術語。特別是近年來,它已與AI(人工智能)等關鍵詞關聯在一起,盡管有點夸張,但它的熱度似乎正在迅速增加。當我對深度學習和神經網絡感興趣并想親自嘗試時,感到自己與那些夸張的圖像和充滿實際數學公式的世界之間存在著巨大的鴻溝,一時不知道該從哪里下手。這樣的情形,我認為有很多人也不知道該怎么辦。本書從作為神經網絡基礎的線性模型開始,介紹和學習包括神經網絡在內的隨機模型的基本原理。其次使用PyTorch,自己動手進行了一個實際程序的創建,以加深對基本原理的理解。除了線性模型這個非常重要的基礎部分以外,全書力圖不使用過多的數學公式,而是嘗試使用直觀的示例進行解釋。以簡單的數字識別、圖像分類、文本分類與生成、翻譯和推薦為例,通過各種應用程序來了解數據的使用及其發生的實際變化。關于這一點,我正是通過各種具體的設計,來使你感受到。本書使用PyTorch這一Python框架。Python是一種編程語言,長期以來一直是數據科學領域中使用多的語言,深度學習也是如此。作為深度學習的Python程序庫,TensorFlow是主要由Google公司開發的框架,是著名的深度學習Python庫。但也有一種觀點認為,初學者很難適應其大量使用符號的編程風格。另一方面,PyTorch是一個主要由Facebook公司開發的開源項目,它采用一種稱為動態網絡的機制,可以像普通的Python程序一樣輕松地進行神經網絡的構建,因此也得到了廣泛的支持和迅速的推廣。特別是由于廣大研究人員的強力支持,使得的研究成果立即在PyTorch中實施并在GitHub上發布已變得司空見慣。盡管日語信息的應用很少,但是PyTorch簡單易用,的研究成果可以立即使用,因此對于那些想要學習深度學習并將其作為職業技能的人來說,這是一個的框架。我希望讀者通過本書的學習,能夠對神經網絡、深度學習或機器學習產生興趣,并可以在自己的工作中真正使用這些技術。杜世橋2018 年9月閱讀本書需要的知識基礎:本書面向對神經網絡和深度學習了解不多,但感興趣并想知道自己可以使用的東西和想真正地自己動手的讀者。在閱讀本書時,假定讀者具有以下的知識基礎。● 基本的Linux的操作● 基本的Python程序設計經驗● 函數和微分、向量和矩陣乘法等初等數學知識●(好具有)NumPy的使用經驗●(好具有)在云上創建虛擬機的經驗可以在以下網站上找到PyTorch(參見要點提示)的官方網站、教程和文檔。通過網站提供的文檔能夠獲取和確認本書中出現的PyTorch 功能的詳細參數和配置。另外,通過閱讀網站提供的教程能夠更好地加深對本書的理解,因此無論如何也請通覽一下。● PyTorch 官方網站 網址http://pytorch.org/● PyTorch 教程 網址http://pytorch.org/tutorials/● PyTorch 文檔 網址http://pytorch.org/docs/要點提示:PyTorch在深度學習開始普及的早期,有一個名為Torch的框架可以通過Lua(一種腳本語言)來使用。PyTorch所使用的后端(back-end)代碼與該Torch框架的代碼完全相同,但是如果你實際上沒有接觸過Torch,那也完全沒有問題。INTRODUCTION本書的構成本書可以分為上半部分(第1~3章)和下半部分(第4~7章)。在第1 章中,我們將概述PyTorch 的包結構,大致了解其組成內容,并實際接觸PyTorch基本的數據結構Tensor。第2章介紹線性模型。學習線性模型的結構非常重要,因為它可以以完全相同的方式用于神經網絡。這是本書中含有使用數學公式解釋該理論的內容。在下半部分中,我們通過PyTorch的實際使用來實現線性回歸模型和邏輯回歸模型,并根據實際數據來進行模型的訓練和參數的學習。在第3章中,將進行神經網絡的介紹。在這里,我們將實際使用PyTorch創建一個多層感知器(Perceptron),這也是一個基本的神經網絡。在第2 章和第3 章中學到的知識將成為接下來的第4 章、第5 章和第6 章的學習基礎。第4章介紹使用卷積神經網絡(Convolutional Neural Network,CNN)進行的圖像處理。在此我們將創建一個程序,該程序不僅可以使用CNN對簡單圖像進行分類,還可以將低分辨率圖像轉換為高分辨率圖像,或者使用深度卷積生成對抗網絡(Deep Convolutional Generative Adversarial Network,DCGAN)來進行新的圖像的生成。除此之外,我們還將展示如何將預先在不同數據集(data set)中訓練過的模型很好地轉移到自己的數據集上,也就是我們所說的遷移學習。第5章介紹使用循環神經網絡(Recurrent Neural Network,RNN)進行的自然語言處理。除了使用RNN進行文本的分類和文本的生成之外,我們還將使用結合了兩個RNN的編碼器- 解碼器模型挑戰英語和西班牙語的翻譯。第6章介紹使用神經網絡構建推薦系統(Recommendati
目 錄譯者序原書前言閱讀本書需要的知識基礎本書的構成關于本書樣例和樣例程序的運行環境第0 章 開發環境的準備 0010.1 本書的驗證環境 0020.1.1 OS 環境:Ubuntu 16.04 0020.1.2 NVIDIA 公司的GPU 0020.1.3 在云端啟動GPU 配置的實例 0030.2 開發環境的構建 0040.2.1 Miniconda 的安裝 0040.2.2 虛擬環境的構建 007第1 章 PyTorch 基礎 0111.1 PyTorch 的構成 0121.1.1 PyTorch 整體情況 0121.2 Tensor 0131.2.1 Tensor 的生成和轉換 0131.2.2 Tensor 的索引操作 0141.2.3 Tensor 的運算 0151.3 Tensor 和自動微分 0201.4 本章小結 022第2 章 極大似然估計與線性模型 0232.1 隨機模型和極大似然估計 0242.2 隨機梯度下降法 0262.3 線性回歸模型 0272.3.1 線性回歸模型的極大似然估計 0272.3.2 PyTorch中的線性回歸模型(from scratch) 0282.3.3 PyTorch中的線性回歸模型(nn、optim 模塊的應用) 0302.4 logistic回歸 0332.4.1 logistic回歸的極大似然估計 0332.4.2 PyTorch中的logistic 回歸 0342.4.3 多元logistic回歸 0362.5 本章小結 039第3 章 多層感知器 0413.1 MLP 的構建與學習 0423.2 Dataset 與DataLoader 0463.3 高效學習的提示 0483.3.1 基于Dropout 的正則化 0483.3.2 通過Batch Normalization 進行學習的加速 0513.4 網絡模塊化 0533.4.1 自有網絡層(自定義層)的創建 0533.5 本章小結 055第4 章 圖像處理和卷積神經網絡 0574.1 圖像的卷積計算 0584.2 基于CNN 的圖像分類 0594.2.1 Fashion-MNIST 0594.2.2 CNN 的構建與學習訓練 0614.3 遷移學習 0664.3.1 數據準備 0684.3.2 通過PyTorch 進行遷移學習 0704.4 通過CNN 回歸模型提高圖像分辨率 0764.4.1 數據準備 0764.4.2 模型的創建 0784.5 基于DCGAN 的圖像生成 0844.5.1 什么是GAN 0844.5.2 數據準備 0844.5.3 基于PyTorch 的DCGAN 0864.6 本章小結 094第5 章 自然語言處理與循環神經網絡 0955.1 RNN 0965.2 文本數據的數值化 0975.3 RNN 與文本的分類 0995.3.1 IMDb 評論數據集 0995.3.2 網絡的定義和訓練 1035.3.3 可變長度序列的處理 1085.4 RNN 的文本生成 1115.4.1 數據準備 1115.4.2 模型的定義和學習 1145.5 基于編碼器 - 解碼器模型的機器翻譯 1195.5.1 編碼器- 解碼器模型 1195.5.2 數據準備 1205.5.3 基于PyTorch 的編碼器- 解碼器模型 1245.6 本章小結 131第6 章 推薦系統和矩陣分解 1336.1 矩陣分解 1346.1.1 理論背景 1346.1.2 MovieLens 數據集 1356.1.3 PyTorch 中的矩陣分解 1366.2 基于神經網絡的矩陣分解 1416.2.1 非線性矩陣分解 1416.2.2 附加信息的使用 1426.3 本章小結 149第7 章 應用程序中的嵌入 1517.1 模型的保存和讀取 1527.2 使用Flask 的WebAPI 1547.3 利用Docker 進行調試 1627.3.1 nvidia-docker 的安裝 1627.3.2 PyTorch Docker 映像的創建 1637.3.3 WebAPI 的部署 1657.4 與使用ONNX 的其他框架的協作 1687.4.1 什么是ONNX 1687.4.2 PyTorch 模型的導出 1697.4.3 Caffe2 中ONNX 模型的使用 1707.4.4 將ONNX 模型另存為Caffe2 模型 1727.5 本章小結 174附錄附錄A 訓練過程的可視化 175A.1 通過TensorBoard 進行的可視化 176附錄B Colaboratory 下PyTorch 開發環境的構建 181B.1 Colaboratory 下PyTorch 開發環境的構建方法 182B.1.1 什么是Colaboratory 182B.1.2 機器的配置 182B.1.3 PyTorch 環境的構建 182B.1.4 PyTorch 的安裝 189B.1.5 數據的獲取 190