深度學習框架PyTorch:入門與實踐 ( 簡體 字) |
作者:陳云 | 類別:1. -> 程式設計 -> Python |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 48262 詢問書籍請說出此書號!【缺書】 NT售價: 325 元 |
出版日:1/1/2018 |
頁數:300 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121330773 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:為什么寫這本書 2016年是屬于TensorFlow的一年,憑借谷歌的大力推廣,TensorFlow占據了各大媒體的頭條。2017年年初,PyTorch的橫空出世吸引了研究人員極大的關注,PyTorch簡潔優雅的設計、統一易用的接口、追風逐電的速度和變化無方的靈活性給人留下深刻的印象。 作為一門2017年剛剛發布的深度學習框架,研究人員所能獲取的學習資料有限,中文資料更是比較少。筆者長期關注PyTorch發展,經常在論壇上幫助PyTorch新手解決問題,在平時的科研中利用PyTorch進行各個方面的研究,有著豐富的使用經驗。看到國內的用戶對PyTorch十分感興趣,迫切需要一本能夠全面講解PyTorch的書籍,于是本書就這么誕生了。 本書的結構 本書分為兩部分:第2~5章主要介紹PyTorch的基礎知識。 ? 第2章介紹PyTorch的安裝和配置學習環境。同時以最概要的方式介紹PyTorch的主要內容,讓讀者對PyTorch有一個大概的整體印象。 ? 第3章介紹PyTorch中多維數組Tensor和動態圖autograd/Variable的使用,并配以例子,讓讀者分別使用Tensor和autograd實現線性回歸,比較二者的不同點。本章還對Tensor的底層設計,以及autograd的原理進行了分析,給讀者以更全面具體的講解。 ? 第4章介紹PyTorch中神經網絡模塊nn的基礎用法,同時講解了神經網絡中的“層”、“損失函數”、“優化器”等,最后帶領讀者用不到50行的代碼搭建出曾奪得ImageNet冠軍的ResNet。 ? 第5章介紹PyTorch中數據加載、GPU加速和可視化等相關工具。 第6~10章主要介紹實戰案例。 ? 第6章是承上啟下的一章,目標不是教會讀者新函數、新知識,而是結合Kaggle中一個經典的比賽,實現一個深度學習中比較簡單的圖像二分類問題。在實現的過程中,帶領讀者復習前5章的知識,并提出代碼規范以合理地組織程序和代碼,使程序更可讀、可維護。第6章還介紹在PyTorch中如何進行debug。 ? 第7章為讀者講解當前最火爆的生成對抗網絡(GAN),帶領讀者從零開始實現一個動漫頭像生成器,能夠利用GAN生成風格多變的動漫頭像。 ? 第8章為讀者講解風格遷移的相關知識,并帶領讀者實現風格遷移網絡,將自己的照片變成“高大上”的名畫。 ? 第9章為讀者講解一些自然語言處理的基礎知識,并講解CharRNN的原理。然后利用其收集幾萬首唐詩,訓練出一個可以自動寫詩歌的小程序。這個小程序可以控制生成詩歌的格式和意境,還能生成藏頭詩。 ? 第10章為讀者介紹圖像描述任務,并以最新的AI Challenger比賽的數據為例,帶領讀者實現一個可以進行簡單圖像描述的小程序。 第1章和第11章是本書的首章和末章,第1章介紹PyTorch的優勢,以及和市面上其他幾款框架的對比。第11章是對本書的總結,以及對PyTorch不足之處的思考,同時對讀者未來的學習提出建議。 關于代碼 本書的所有代碼都開源在GitHub【https://github.com/chenyuntc/pytorch-book】上,其中: ? 第2~5章的代碼以Jupyter Notebook形式提供,讀者可以在自己的計算機上交互式地修改運行它。 ? 第6~10章的代碼以單獨的程序給出,每個函數的作用與細節在代碼中有大量的注釋。 本書的代碼,在最新版的PyTorch 0.2上運行,同時支持Python 2 和Python 3,其中: ? 前5章的代碼同時在Python 2.7和Python 3.5上驗證,并得到最終結果。 ? 第6~10章的代碼,主要在Python 2.7上運行并得到最終結果,同時在Python 3.5上測試未報錯。 適讀人群 學習本書需要讀者具備以下基礎知識: ? 了解Python的基礎語法,掌握基礎的Python使用方法。 ? 有一定深度學習基礎,了解反向傳播、卷積神經網絡等基礎知識,但并不要求深入了解。 ? 具備梯度、導數等高中數學基礎知識。 以下知識不是必需的,但最好了解: ? numpy的使用。 ? 深度學習的基本流程或者其他深度學習框架的使用。 本書不適合哪些讀者: ? 沒有任何深度學習基礎的用戶。 ? 沒有Python基礎的用戶。 ? 只能使用Windows的用戶。 本書約定 在本書中,筆者是本書編著者的自稱,作者指的是軟件、論文等的作者,讀者指閱讀本書的你。 本書前5章的代碼由Jupyter Notebook轉換而來,其中: ? In后面跟著的是輸入的代碼。 ? Out是指程序的運行結果,運行結果取決于In的最后一行。 ? Print后面跟著程序的打印輸出內容,只有在In程序中調用了 print 函數/語句才會有Print輸出。 ? Jupyter會自動輸出Image對象和matplotlib可視化結果,所以書中以“程序輸出”命名的圖片都來自Jupyter的程序輸出。這些圖片的說明在代碼注釋中。 如何使用本書 本書第2章是PyTorch快速入門,第3~5章是對這些內容的詳細深入介紹。第6章是一個簡單而完整的深度學習案例。 如果你是經驗豐富的研究人員,之前對PyTorch十分熟悉,對本書的某些例子比較感興趣,那么你可以跳過前5章,直接閱讀第6章,了解這些例子的程序設計與文件組織安排,然后閱讀相應的例子。 如果你是初學者,想以最快的速度掌握PyTorch并將PyTorch應用到實際項目中,那么你可以花費2~3小時閱讀2.2節的相關內容。如果你需要深入了解某部分的內容,那么可以閱讀相應章節。 如果你是初學者,想完整全面地掌握PyTorch,那么建議你: ? 先閱讀第1~5章,了解PyTorch的各個基礎知識。 ? 再閱讀第6章,了解PyTorch實踐中的技巧。 ? 最后從第7~10章挑選出感興趣的例子,動手實踐。 最后,希望讀者在閱讀本書的時候,盡量結合本書的配套代碼閱讀、修改、運行之。 致謝 杜玉姣同學在我編寫本書的時候,給了我許多建議,并協助審閱了部分章節,在此特向她表示謝意。在編寫本書時,本書編輯鄭柳潔女士給予了很大的幫助,在此特向她致謝。感謝我的家人一直以來對我的支持,感謝我的導師肖波副教授對我的指導。感謝我的同學、師弟師妹們,他們在使用PyTorch中遇到了很多問題,給了我許多反饋意見。 由于筆者水平所限,書中難免有錯誤和不當之處,歡迎讀者批評指正。具體意見可以發表在GitHub上的issue中。 |
內容簡介:書從多維數組Tensor開始,循序漸進地帶領讀者了解PyTorch各方面的基礎知識,并結合基礎知識和前沿研究,帶領讀者從零開始完成幾個經典有趣的深度學習小目,包括GAN 生成動漫頭像、AI濾鏡、AI 寫詩等。本書沒有簡單機械地介紹各個函數接口的使用,而是嘗試分門別類、循序漸進地向讀者介紹PyTorch的知識,希望讀者對PyTorch有一個完整的認識。本書內容由淺入深,無論是深度學習的初學者,還是第一次接觸PyTorch的研究人員,都能在學習本書的過程中快速掌握PyTorch。即使是有一定PyTorch使用經驗的用戶,也能夠從本書中獲得對PyTorch 不一樣的理解。 |
目錄:1 PyTorch簡介 1.1 PyTorch的誕生 1.2 常見的深度學習框架簡介 1.2.1 Theano 1.2.2 TensorFlow 1.2.3 Keras 1.2.4 Caffe/Caffe2 1.2.5 MXNet 1.2.6 CNTK 1.2.7 其他框架 1.3 屬于動態圖的未來 1.4 為什么選擇PyTorch 1.5 星火燎原 1.6 fast.ai 放棄Keras+TensorFlow選擇PyTorch 2 快速入門 2.1 安裝與配置 2.1.1 安裝PyTorch 2.1.2 學習環境配置 2.2 PyTorch入門第一步 2.2.1 Tensor 2.2.2 Autograd:自動微分 2.2.3 神經網絡 2.2.4 小試牛刀:CIFAR-10分類 3 Tensor和autograd 3.1 Tensor 3.1.1 基礎操作 3.1.2 Tensor和Numpy 3.1.3 內部結構 3.1.4 其他有關Tensor的話題 3.1.5 小試牛刀:線性回歸 3.2 autograd 3.2.1 Variable 3.2.2 計算圖 3.2.3 擴展autograd 3.2.4 小試牛刀:用Variable實現線性回歸 4 神經網絡工具箱nn 4.1 nn.Module 4.2 常用的神經網絡層 4.2.1 圖像相關層 4.2.2 激活函數 4.2.3 循環神經網絡層 4.2.4 損失函數 4.3 優化器 4.4 nn.functional 4.5 初始化策略 4.6 nn.Module深入分析 4.7 nn和autograd的關系 4.8 小試牛刀:用50行代碼搭建ResNet 5 PyTorch中常用的工具 5.1 數據處理 5.2 計算機視覺工具包:torchvision 5.3 可視化工具 5.3.1 Tensorboard 5.3.2 visdom 5.4 使用GPU加速:cuda 5.5 持久化 6 PyTorch實戰指南 6.1 編程實戰:貓和狗二分類 6.1.1 比賽介紹 6.1.2 文件組織架構 6.1.3 關于__init__.py 6.1.4 數據加載 6.1.5 模型定義 6.1.6 工具函數 6.1.7 配置文件 6.1.8 main.py 6.1.9 使用 6.1.10 爭議 6.2 PyTorch Debug 指南 6.2.1 ipdb 介紹 6.2.2 在PyTorch中Debug 7 AI插畫師:生成對抗網絡 7.1 GAN的原理簡介 7.2 用GAN生成動漫頭像 7.3 實驗結果分析 8 AI藝術家:神經網絡風格遷移 8.1 風格遷移原理介紹 8.2 用PyTorch實現風格遷移 8.3 實驗結果分析 9 AI詩人:用RNN寫詩 9.1 自然語言處理的基礎知識 9.1.1 詞向量 9.1.2 RNN 9.2 CharRNN 9.3 用PyTorch實現CharRNN 9.4 實驗結果分析 10 Image Caption:讓神經網絡看圖講故事 10.1 圖像描述介紹 10.2 數據 10.2.1 數據介紹 10.2.2 圖像數據處理 10.2.3 數據加載 10.3 模型與訓練 10.4 實驗結果分析 11 展望與未來 11.1 PyTorch的局限與發展 11.2 使用建議 |
序: |