一, Pytorch🔥 or TensorFlow2 🍎
先說結論:git
若是是工程師,應該優先選TensorFlow2.github
若是是學生或者研究人員,應該優先選擇Pytorch.web
若是時間足夠,最好TensorFlow2和Pytorch都要學習掌握。算法
理由以下:微信
-
1,在工業界最重要的是模型落地,目前國內的大部分互聯網企業只支持TensorFlow模型的在線部署,不支持Pytorch。 而且工業界更加註重的是模型的高可用性,許多時候使用的都是成熟的模型架構,調試需求並不大。markdown
-
2,研究人員最重要的是快速迭代發表文章,須要嘗試一些較新的模型架構。而Pytorch在易用性上相比TensorFlow2有一些優點,更加方便調試。 而且在2019年以來在學術界佔領了大半壁江山,可以找到的相應最新研究成果更多。網絡
-
3,TensorFlow2和Pytorch實際上總體風格已經很是類似了,學會了其中一個,學習另一個將比較容易。兩種框架都掌握的話,可以參考的開源模型案例更多,而且能夠方便地在兩種框架之間切換。數據結構
本書的TensorFlow鏡像教程:架構
《30天吃掉那隻TensorFlow2》:https://github.com/lyhue1991/eat_tensorflow2_in_30_days框架
二,本書📖面向讀者 👼
本書假定讀者有必定的機器學習和深度學習基礎,使用過Keras或TensorFlow或Pytorch搭建訓練過簡單的模型。
對於沒有任何機器學習和深度學習基礎的同窗,建議在學習本書時同步參考閱讀《Python深度學習》一書的第一部分"深度學習基礎"內容。
《Python深度學習》這本書是Keras之父Francois Chollet所著,該書假定讀者無任何機器學習知識,以Keras爲工具,
使用豐富的範例示範深度學習的最佳實踐,該書通俗易懂,全書沒有一個數學公式,注重培養讀者的深度學習直覺。。
《Python深度學習》一書的第一部分的4個章節內容以下,預計讀者能夠在20小時以內學完。
-
1,什麼是深度學習
-
2,神經網絡的數學基礎
-
3,神經網絡入門
-
4,機器學習基礎
三,本書寫做風格 🍉
本書是一本對人類用戶極其友善的Pytorch入門工具書,Don't let me think是本書的最高追求。
本書主要是在參考Pytorch官方文檔和函數doc文檔基礎上整理寫成的。
儘管Pytorch官方文檔已經至關簡明清晰,但本書在篇章結構和範例選取上作了大量的優化,在用戶友好度方面更勝一籌。
本書按照內容難易程度、讀者檢索習慣和Pytorch自身的層次結構設計內容,按部就班,層次清晰,方便按照功能查找相應範例。
本書在範例設計上儘量簡約化和結構化,加強範例易讀性和通用性,大部分代碼片斷在實踐中可即取即用。
若是說經過學習Pytorch官方文檔掌握Pytorch的難度大概是5,那麼經過本書學習掌握Pytorch的難度應該大概是2.
四,本書學習方案 ⏰
1,學習計劃
本書是做者利用工做之餘大概3個月寫成的,大部分讀者應該在20天能夠徹底學會。
預計天天花費的學習時間在30分鐘到2個小時之間。
固然,本書也很是適合做爲Pytorch的工具手冊在工程落地時做爲範例庫參考。
點擊學習內容藍色標題便可進入該章節。
日期 | 學習內容 | 內容難度 | 預計學習時間 | 更新狀態 |
---|---|---|---|---|
1、Pytorch的建模流程 | ⭐️ | 0hour | ✅ | |
day1 | 1-1,結構化數據建模流程範例 | ⭐️⭐️⭐️ | 1hour | ✅ |
day2 | 1-2,圖片數據建模流程範例 | ⭐️⭐️⭐️⭐️ | 2hour | ✅ |
day3 | 1-3,文本數據建模流程範例 | ⭐️⭐️⭐️⭐️⭐️ | 2hour | ✅ |
day4 | 1-4,時間序列數據建模流程範例 | ⭐️⭐️⭐️⭐️⭐️ | 2hour | ✅ |
2、Pytorch的核心概念 | ⭐️ | 0hour | ✅ | |
day5 | 2-1,張量數據結構 | ⭐️⭐️⭐️⭐️ | 1hour | ✅ |
day6 | 2-2,自動微分機制 | ⭐️⭐️⭐️ | 1hour | ✅ |
day7 | 2-3,動態計算圖 | ⭐️⭐️⭐️⭐️⭐️ | 2hour | ✅ |
3、Pytorch的層次結構 | ⭐️ | 0hour | ✅ | |
day8 | 3-1,低階API示範 | ⭐️⭐️⭐️⭐️ | 1hour | |
day9 | 3-2,中階API示範 | ⭐️⭐️⭐️ | 1hour | |
day10 | 3-3,高階API示範 | ⭐️⭐️⭐️ | 1hour | |
4、Pytorch的低階API | ⭐️ | 0hour | ✅ | |
day11 | 4-1,張量的結構操做 | ⭐️⭐️⭐️⭐️⭐️ | 2hour | |
day12 | 4-2,張量的數學運算 | ⭐️⭐️⭐️⭐️ | 1hour | |
day13 | 4-3,nn.functional和nn.Module.md | ⭐️⭐️⭐️⭐️ | 1hour | |
5、Pytorch的中階API | ⭐️ | 0hour | ✅ | |
day14 | 5-1,Dataset和DataLoader | ⭐️⭐️⭐️⭐️⭐️ | 2hour | |
day15 | 5-2,模型層 | ⭐️⭐️⭐️ | 1hour | |
day16 | 5-3,損失函數 | ⭐️⭐️⭐️ | 1hour | |
day17 | 5-4,TensorBoard可視化 | ⭐️⭐️⭐️ | 1hour | |
6、Pytorch的高階API | ⭐️ | 0hour | ✅ | |
day18 | 6-1,構建模型的3種方法 | ⭐️⭐️⭐️⭐️ | 1hour | |
day19 | 6-2,訓練模型的3種方法 | ⭐️⭐️⭐️⭐️ | 1hour | |
day20 | 6-3,使用GPU訓練模型 | ⭐️⭐️⭐️⭐️ | 1hour |
2,學習環境
本書所有源碼在jupyter中編寫測試經過,建議經過git克隆到本地,並在jupyter中交互式運行學習。
爲了直接可以在jupyter中打開markdown文件,建議安裝jupytext,將markdown轉換成ipynb文件。
#克隆本書源碼到本地,使用碼雲鏡像倉庫國內下載速度更快
#!git clone https://gitee.com/Python_Ai_Road/eat_pytorch_in_20_days
#建議在jupyter notebook 上安裝jupytext,以便可以將本書各章節markdown文件視做ipynb文件運行
#!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U jupytext
#建議在jupyter notebook 上安裝最新版本pytorch 測試本書中的代碼
#!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U torch torchvision torchtext torchkeras
import torch
from torch import nn
print("torch version:", torch.__version__)
a = torch.tensor([[2,1]])
b = torch.tensor([[-1,2]])
c = a@b.t()
print("[[2,1]]@[[-1],[2]] =", c.item())
torch version: 1.5.0
[[2,1]]@[[-1],[2]] = 0
五,鼓勵和聯繫做者 🎈🎈
若是本書對你有所幫助,想鼓勵一下做者,記得給本項目加一顆星星star⭐️,並分享給你的朋友們喔😊!
關注雲哥公衆號
並在後臺回覆關鍵字:pytorch
獲取項目github地址
本文分享自微信公衆號 - Python與算法社區(alg-channel)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。