PyTorch安裝與基礎概念

Pytorch是Facebook 的 AI 研究團隊發佈了一個 Python 工具包,是Python優先的深度學習框架改進現有的神經網絡。
Pytorch提供了更快速的方法——不需要從頭重新構建整個網絡,這是由於 PyTorch 採用了動態計算圖(dynamic computational graph)結構,而不是大多數開源框架(TensorFlow、Caffe、CNTK、Theano 等)採用的靜態計算圖。

PyTorch安裝

pytorch的安裝可以看另一篇文章:anaconda中PyTorch的安裝

PyTorch基礎概念

張量(Tensor):類似於NumPy的ndarray,但還可以在GPU上使用來加速計算。

自動求導(Autograd):autograd包爲張量上的所有操作提供了自動求導機制。它是一個在運行時定義(define-by-run)的框架,這意味着反向傳播是根據代碼如何運行來決定的,並且每次迭代可以是不同的。

神經網絡:可以使用torch.nn包來構建神經網絡。一個nn.Module包含各個層和一個forward(input)方法,該方法返回output。

簡單實例

import torch

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') 

N, D_in, H, D_out = 64, 1000, 100, 10

x = torch.randn(N, D_in, device=device)
y = torch.randn(N, D_out, device=device)

w1 = torch.randn(D_in, H, device=device, requires_grad=True)
w2 = torch.randn(H, D_out, device=device, requires_grad=True)

learning_rate = 1e-6
for t in range(500):
    y_pred = x.mm(w1).clamp(min=0).mm(w2)

    loss = (y_pred - y).pow(2).sum()
    print(t, loss.item())
    
    loss.backward()

    with torch.no_grad():
        w1 -= learning_rate * w1.grad
        w2 -= learning_rate * w2.grad
        
        w1.grad.zero_()
        w2.grad.zero_()

參考:
PyTorch 中文文檔 & 教程
https://blog.csdn.net/cuclxt/article/details/71305222

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章