一句一句讀Pytorch(更新中)
試圖從code snippets 和 pytorch 源代碼 去理解深度學習概念與技巧
返回 總目錄文章 pytorch 的損失函數文檔解析
視頻筆記是按時間循序更新的,越往下越新
大部分視頻爭取控制在5-8分鐘以內,極少數時間在10分鐘以上。
如何使用pytorch的numpy
如何理解pytorch.Variable
pytorch如何求導數
pytorch如何求normL1L2
在代碼中列印函數公式
快速畫函數圖
構建與解剖源代碼的思考
結合具體應用來理解Norm_L2
如何翻閱pytorch源代碼從python到C
pytorch源代碼庫結構膚淺認知
pytorch 官方tutorials
tutorials 01-03
如何用pytorch構建模型:
- nn.Module, nn.Functional, forward, num_flat_features, inherit, overwrite
如何用pytorch完成一次正反向傳遞
- net.parameters, loss.grad_fn.next_functions0, net.zero_grad
- criterion = nn.MSELoss(), loss = criterion(output, target)
- optimizer = optim.SGD(net.parameters(), lr=0.01), optimizer.zero_grad, optimizer.step
net.zero_grad() == 效用== optimizer.zero_grad()
- net.parameters() == 效用== optimizer.param_groups0
net 與optimizer調取parameters方式不同
- net.parameters() 生成 generator; 用for in loop調取所有參數
- optimizer.param_groups 生成list, 然後optimizer.param_groups[0]是dict, 然後optimizer.param_groups0調取所有參數
- lst = list(net.parameters()) 將generator轉化為list, 但必須賦值
optimizer.step是如何更新參數的
- p.data.add_(-group["lr"], d_p)
如何調用net.conv1內部的method, attributes
- net.conv1.weight, net.conv2.bias.grad, net.fc1.zero_grad
構建optim.SGD時到底發生了什麼
- optimizer.param_groups[0].keys()
pytorch如何借用THNN計算MSELoss, 核實是否是THNN在工作
- nn.MSELoss, nn._Loss, nn.module.Module, THNN,
- pytorch/torch/lib/THNN/generic/MSECriterion.c, THNN_(MSECriterion_updateOutput)
自己的模型Net從nn.Module繼承了什麼
- super(Net, self).__init__(), 在運行super class init中,同時繼承了所有的methods
- Net overwrite init(), forward() write a new func num_flat_features() for itself
nn.Module裡面的dir與repr函數
- self._modules.keys(), self.dict.keys()
- lst = list(self._buffers.keys()), sorted(keys)
nn.Conv2d裡面構建了什麼
- nn.Conv2d -> nn._ConvND -> nn.Module
- nn._ConvND: init, reset_parameters
F.Conv2d裡面發生了什麼?
- ConvNd = torch.C.functions.ConvNd
self.conv1(x) 先運行getattr再運行call
如何安裝gdb從而能一路debug from python to C/C++
- 安裝求助
- C/C++ gdb 問題基本解決 部分解決
- gdb python 有待解決 no module libpython 似乎解決了
- 剩下can"t read symbols 的warning 沒有真正解決
nn.MSELoss的解析01
- MSELoss -> _Loss -> Module
- 包含init, forward, pre_forward_hooks, forward_hooks, backward_hooks
nn.MSELoss的解析02
- functions.thnn.MSELoss.apply(input, target, size_average) 調用torch.C 中的用於計算mseloss函數
- ctx == _ContextMethodMixin, 至於是如何調用的,不清楚過程
- 嘗試理解這種方法的廣泛性
optim.SGD的解析
- init: 將params, defaults(包含超參數dict)重新打包到self.param_groups裡面
- 方便zero_grad和step 使用
全流程梳理pytorch普通建模 代碼
- part1 part2 part3 part4 part5 part6 part7 part8 part9
- backend1: 從pytorch ConvNd 到Torch.csrc.autograd.functions....ConvForward
- 從pytorch.relu通過backend到torch.Threshold
- 從pytorch.maxpool2d通過backend到torch.C.spatialDilatedMaxPooling
- 從pytorch.MSELoss通過backend到Torch.mseloss
全流程梳理pytorch 多分類建模 代碼
- part1, part2, part3
二元分類問題的Loss設定的注意事項:代碼3
- 如果用BCEWithLogitsLoss
- features, targets的type 要統一為torch.FloatTensor
- targets的size要規範為(-1,1)
- 如果用CrossEntryLoss
- targets的type一定要是torch.LongTensor
- 摸索過程:真實發現錯誤和尋找解決方案的過程
- part1, part2, part3
探索keras內部 冗長解讀
- 查看keras內部主要的modules 0:00-7:50
- keras.models.Sequential內部結構 --13:38
- keras.legacy.interfaces...wrapper 讓keras1與keras2互通 -- 15:36
- keras.models.add --22.10
為什麼pytorch對beginner更友好 解讀
看看debug方式閱讀keras代碼是不是比較困難
用pytorch構建自己的數據class 代碼文檔 part1, part2, part3, part4, 總結版
存儲自己的數據,transform,batch,shuffle
如何使用Variable.backward?
如何展示處理中間層的輸入和輸出值
如何查看某一層的parameters 代碼文檔
transfer_learning_tutorial
如何疊加多個圖片transformation 代碼文檔
ImageFolder如何將圖片folder轉化成模型數據格式
如何將變數信息注入到時間序列的顏色中
如何使用dataloader來做批量和隨機
給一個小批量圖做plotting
直接調用著名模型及其參數來用
調用的著名模型內部構造
量身修改訓練好的高級模型
調試優化演算法的LR的用途用法結構
train_model定製訓練函數的結構
scheduler.step和model.train用法
借用的高級模型的大部分參數如何保持不變
訓練完成後畫一個批量的圖
如何構建自己的dataset class
Deep Learning for NLP with Pytorch
NLP_pytorch_basics01 代碼文檔
如何設置random seed 方便數據repetition?但是用在哪裡呢?
如何用list 構建torch.Tensor (Vector, Matrix, 3D-tensor)? 如何構建random normal 2D 數據?如何連接2-3個2D tensor(row-bind, col-bind)? 如何在pytorch做reshape?如何將list變成可以做gradient的Variable?如何從Variable中提取Tensor, gradient, 以及grad_fn? 如何求運算多次之後的值y相對於x(可求導的Variable)的導數?Variable如何保持原來的記憶?
NLP_pytorch_basics02 代碼文檔
訓練模型識別西班牙和英文句子,內在參數能識別單詞是英文還是西文?
# 49 如何構建一個Linear object, lin? 如何讓input data 的shape與lin保持協調,然後用lin調用input data完成計算?#98 F.relu是如何使用數據來完成計算的?F.softmax, F.log_softmax 內在的計算流程是怎樣的?#238 如何準備英西翻譯數據?list of tuples(list, str)#248 如何將所有句子中的獨特(不重複)單詞附上序號,存在dict里?#259 回顧一下如何定義自己的模型?overwrite Module class; 為什麼特徵數 = vocab_size, 輸出值數 = num_labels?#283 如何寫一個函數來計數每一個獨特字(在一句話中的頻率),返回1-row tensor (1, vocab_length)?
#290 如何用函數將label轉化為idx,返回long tensor?#302 如何列印看看每一層layer的weight, bias?# 343 模型的唯一層的參數(2,num_vocab) 是對每個詞的學習,訓練來認知是(spanish, english)?# 345 如何構建一個negative log loss object?# 380 creo 之前的tensor (0.14, 0.13), 之後的tensor(0.53, -0.25)
Custom C extensions for pytorch
如何為pytorch寫C函數extension
YunJey | pytorch-tutorial
讓pytorch使用tensorboard 代碼文檔
推薦閱讀:
※Python 家族有多龐大
※Python數據分析及可視化實例之CentOS7.2+Python3x+Flask部署標準化配置流程
※Flask 實現小說網站 (二)
※Python實現3D建模工具
※Flask模板引擎:Jinja2語法介紹
TAG:PyTorch | 深度学习DeepLearning | Python |