「每月好書」深度學習框架PyTorch入門與實踐
和老規矩一樣,本月月考的獎品就是《深度學習框架PyTorch入門與實踐》兩本。不知道什麼是月考的同學,請補習下面文章:
規則就說到這裡,下面是書籍介紹。
-----------割------------
深度學習框架PyTorch:入門與實踐(媲美TensorFlow的深度學習框架!實戰Kaggle競賽中經典項目、GAN生成動漫頭像、AI濾鏡、RNN寫詩、圖像描述任務,附贈源代碼文件!)
陳雲 著 ISBN 978-7-121-33077-3
2018年1月出版
定價:65.00元
300頁 16開
編輯推薦
本書包含PyTorch基礎知識+實戰案例兩部分
提供notebook,方便讀者交互性學習
梳理PyTorch基礎知識及重點、難點
翔實的案例,案例包括Kaggle競賽中經典項目、GAN生成動漫頭像、AI濾鏡、RNN寫詩、圖像描述任務
配套源代碼文件供下載、讀者交流QQ群
內容提要
《深度學習框架PyTorch:入門與實踐》從多維數組Tensor開始,循序漸進地帶領讀者了解PyTorch各方面的基礎知識。結合基礎知識和前沿研究,帶領讀者從零開始完成幾個經典有趣的深度學習小項目,包括GAN生成動漫頭像、AI濾鏡、AI寫詩等。《深度學習框架PyTorch:入門與實踐》沒有簡單機械地介紹各個函數介面的使用,而是嘗試分門別類、循序漸進地向讀者介紹PyTorch的知識,希望讀者對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 使用建議
作者簡介
陳雲,Python程序員、Linux愛好者和PyTorch源碼貢獻者。主要研究方向包括計算機視覺和機器學習。「2017知乎看山杯機器學習挑戰賽」一等獎,「2017天池醫療AI大賽」第八名。 熱衷於推廣PyTorch,並有豐富的使用經驗,活躍於PyTorch論壇和知乎相關板塊。
前言
為什麼寫這本書
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(https://github.com/chenyuntc/pytorch-book/issues)中。
點擊「閱讀原文」,購買本書
TAG:Python部落 |