本書假定讀者有一定的機器學習和深度學習基礎,使用過Keras或TensorFlow或Pytorch搭建訓練過簡單的模型。
號外號外,《20天吃掉那隻Pytorch》視頻版本登錄BiliBili啦,吃貨本貨傾情掌勺,只為最純正的鄉土味道,歡迎新老朋友前來品嚐??!
https://www.bilibili.com/video/BV1Ua411P7oe
本書是一本對人類用戶極其友善的Pytorch入門工具書,Don't let me think是本書的最高追求。
本書主要是在參考Pytorch官方文檔和函數doc文檔基礎上整理寫成的。
儘管Pytorch官方文檔已經相當簡明清晰,但本書在篇章結構和範例選取上做了大量的優化,在用戶友好度方面更勝一籌。
本書按照內容難易程度、讀者檢索習慣和Pytorch自身的層次結構設計內容,循序漸進,層次清晰,方便按照功能查找相應範例。
本書在範例設計上盡可能簡約化和結構化,增強範例易讀性和通用性,大部分代碼片段在實踐中可即取即用。
如果說通過學習Pytorch官方文檔掌握Pytorch的難度大概是5,那麼通過本書學習掌握Pytorch的難度應該大概是2.
僅以下圖對比Pytorch官方文檔與本書《20天吃掉那隻Pytorch》的差異。
1,學習計劃
本書是作者利用工作之餘大概3個月寫成的,大部分讀者應該在20天可以完全學會。
預計每天花費的學習時間在30分鐘到2個小時之間。
當然,本書也非常適合作為Pytorch的工具手冊在工程落地時作為範例庫參考。
點擊學習內容藍色標題即可進入該章節。
| 日期 | 學習內容 | 內容難度 | 預計學習時間 | 更新狀態 |
|---|---|---|---|---|
| 一、Pytorch的建模流程 | ️ | 0hour | ✅ | |
| day1 | 1-1,結構化數據建模流程範例 | ️️️ | 1hour | ✅ |
| day2 | 1-2,圖片數據建模流程範例 | ️️️️ | 2hour | ✅ |
| day3 | 1-3,文本數據建模流程範例 | ️️️️️ | 2hour | ✅ |
| day4 | 1-4,時間序列數據建模流程範例 | ️️️️️ | 2hour | ✅ |
| 二、Pytorch的核心概念 | ️ | 0hour | ✅ | |
| day5 | 2-1,張量數據結構 | ️️️️ | 1hour | ✅ |
| day6 | 2-2,自動微分機制 | ️️️ | 1hour | ✅ |
| day7 | 2-3,動態計算圖 | ️️️️️ | 2hour | ✅ |
| 三、Pytorch的層次結構 | ️ | 0hour | ✅ | |
| day8 | 3-1,低階API示範 | ️️️️ | 1hour | ✅ |
| day9 | 3-2,中階API示範 | ️️️ | 1hour | ✅ |
| day10 | 3-3,高階API示範 | ️️️ | 1hour | ✅ |
| 四、Pytorch的低階API | ️ | 0hour | ✅ | |
| day11 | 4-1,張量的結構操作 | ️️️️️ | 2hour | ✅ |
| day12 | 4-2,張量的數學運算 | ️️️️ | 1hour | ✅ |
| day13 | 4-3,nn.functional和nn.Module | ️️️️ | 1hour | ✅ |
| 五、Pytorch的中階API | ️ | 0hour | ✅ | |
| day14 | 5-1,Dataset和DataLoader | ️️️️ | 1hour | ✅ |
| day15 | 5-2,模型層 | ️️️️️ | 2hour | ✅ |
| day16 | 5-3,損失函數 | ️️️️ | 1hour | ✅ |
| day17 | 5-4,TensorBoard可視化 | ️️️ | 1hour | ✅ |
| 六、Pytorch的高階API | ️ | 0hour | ✅ | |
| day18 | 6-1,構建模型的3種方法 | ️️ | 0.5hour | ✅ |
| day19 | 6-2,訓練模型的3種方法 | ️️️ | 1hour | ✅ |
| day20 | 6-3,使用GPU訓練模型 | ️️️️ | 1hour | ✅ |
| * | 後記:我的產品觀 | ️ | 0hour | ✅ |
2,學習環境
本書全部源碼在jupyter中編寫測試通過,建議通過git克隆到本地,並在jupyter中交互式運行學習。
step1: 克隆本書源碼到本地,使用碼雲鏡像倉庫國內下載速度更快
git clone https://gitee.com/Python_Ai_Road/eat_pytorch_in_20_days
step2: 公眾號算法美食屋回復關鍵詞: pytorch , 獲取本項目所用數據集匯總壓縮包eat_pytorch_datasets.zip百度雲盤下載鏈接,下載解壓並移動到eat_pytorch_in_20_days路徑下,約160M。
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: 2.0.1
[[2,1]]@[[-1],[2]] = 0
適合對廣告推薦領域感興趣,且需要進階的同學??
| 日期 | 學習內容 | 內容難度 | 預計學習時間 | 更新狀態 |
|---|---|---|---|---|
| 七、Pytorch與廣告推薦 | ️ | 0hour | ✅ | |
| day1 | 7-1,推薦算法業務 | ️️️ | 0.5hour | ✅ |
| day2 | 7-2,廣告算法業務 | ️️️ | 0.5hour | ✅ |
| day3 | 7-3,FM模型 | ️️️ | 1hour | ✅ |
| day4 | 7-4,DeepFM模型 | ️️️️ | 1hour | ✅ |
| day5 | 7-5,FiBiNET模型 | ️️️️ | 2hour | ✅ |
| day6 | 7-6,DeepCross模型 | ️️️️️ | 2hour | ✅ |
| day7 | 7-7,DIN網絡 | ️️️️️ | 2hour | ✅ |
| day8 | 7-8,DIEN網絡 | ️️️️️ | 2hour | ✅ |
介紹一些與pytorch相關的周邊工具
| 日期 | 學習內容 | 內容難度 | 預計學習時間 | 更新狀態 |
|---|---|---|---|---|
| 彩蛋:Pytorch周邊工具 | ️ | 0hour | ✅ | |
| day1 | A-1, Kaggle免費GPU使用攻略 | ️️️ | 1hour | ✅ |
| day2 | A-2, Streamlit構建機器學習應用 | ️️️ | 1hour | ✅ |
| day3 | A-3, 使用Mac M1芯片加速pytorch | ️️️ | 1hour | ✅ |
| day4 | A-4, optuna可視化調參魔法指南 | ️️️️ | 1hour | ✅ |
| day5 | A-5, gradio讓你的機器學習模型性感起來 | ️️️️ | 1hour | ✅ |
| day6 | A-6, wandb模型可視化分析 | ️️️ | 0.5hour | ✅ |
| day7 | A-7, wandb模型可視化自動調參 | ️️️ | 1hour | ✅ |
相關章節代碼進行了對應優化調整。
| 功能 | 穩定支持起始版本 | 依賴或借鑒庫 |
|---|---|---|
| ✅ 訓練進度條 | 3.0.0 | 依賴tqdm,借鑒keras |
| ✅ 訓練評估指標 | 3.0.0 | 借鑒pytorch_lightning |
| ✅ notebook中訓練自帶可視化 | 3.8.0 | 借鑒fastai |
| ✅ early stopping | 3.0.0 | 借鑒keras |
| ✅ gpu training | 3.0.0 | 依賴accelerate |
| ✅ multi-gpus training(ddp) | 3.6.0 | 依賴accelerate |
| ✅ fp16/bf16 training | 3.6.0 | 依賴accelerate |
| ✅ tensorboard callback | 3.7.0 | 依賴tensorboard |
| ✅ wandb callback | 3.7.0 | 依賴wandb |
詳情參考項目鏈接::https://github.com/lyhue1991/torchkeras
如果本書對你有所幫助,想鼓勵一下作者,記得給本項目加一顆星星star️,並分享給你的朋友們喔?!
如果對本書內容理解上有一些疑問或者建議,可以在公眾號"算法美食屋"後台回復關鍵字:加群,加入讀者交流群和大家討論。