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

你可能感兴趣的:(PyTorch)