當前位置:
首頁 > 知識 > 「每月好書」深度學習框架PyTorch入門與實踐

「每月好書」深度學習框架PyTorch入門與實踐

「每月好書」深度學習框架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)中。

點擊「閱讀原文」,購買本書

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python部落 的精彩文章:

網路延遲與光速

TAG:Python部落 |