###### tags: `Pytorch 筆記` {%hackmd @kk6333/theme-sty1 %} # Pytorch 筆記 : Pytorch vs Numpy 眾所皆知 Numpy 是一個非常方便操作矩陣的模組 Pytorch 作為深度學習的框架,在矩陣操作上也與 Numpy 非常相似 此筆記簡單比較了 Numpy 和 Pytorch 的操作方式 --- ### 1. Numpy,Pytorch 矩陣轉換 numpy 矩陣型態稱 ndarray torch 矩陣型態稱 tensor ```python= # ndarray => tensor torch_arr = torch.from_numpy(nparr) # tensor => ndarray nparr = torch_arr.numpy() ``` ### 2. 求平均 ```python= # numpy (axis:維度) np.mean(nparr, axis=0) # torch (dim:維度) torch_arr.mean(dim=0) ``` ### 3. Norm norm 的意義可參考 [正規化 (L1、L2)](/RrUp9yPTR2ureJBSfjtFew) 中的 L1、L2 意義 也可以看這篇介紹 [torch.norm()函数的用法](https://zhuanlan.zhihu.com/p/260162240) ```python= # numpy np.linalg.norm(nparr) # torch torch.norm(torch_arr) ``` ### 4. 矩陣的 Reshape 下面會將矩陣塑形成 2*2 的大小 torch 的 view 還支援其中一維度的自動計算大小,只要打上 -1 ```python= # numpy nparr.reshape(2,2) # torch torch_arr.view(2,2) torch_arr.view(-1,2) # -1 : torch 自動計算此維度大小 # 補充 : 神經網路中常用到矩陣攤平,寫成以下形式 torch_arr.view(-1) ``` ### 5. 四則運算 這部分沒什麼好講的, numpy 和 torch 方法皆相同 ```python= # numpy nparr + nparr # torch torch_arr + torch_arr ```