最简单的求dy/dx的程序实例
import torch
from torch.autograd import Variable
#利用PyTorch进行autograd
x = torch.Tensor([3])
x = Variable(x,requires_grad=True)
y = x**2
y.backward() #注:只有标量可以进行backward求导
print(y)
print(x.grad)
通过输入和输出求权值的一个实例
import torch.nn as nn
import torch
from torch.autograd import Variable
x = [[0.1, 0.8, 1],[0.8,0.2,1]] #输入
y = [[1],[1]] #输出
w = [[0.1, 0.2, 0.3]] #初始权值
x = Variable(torch.Tensor(x))
y = Variable(torch.Tensor(y))
w = Variable(torch.Tensor(w), requires_grad=True) # w需要监测梯度
#开始训练
for i in range(1000):
out = torch.mm(x, w.t()) #计算输出时应关注维度,需要的时候加转置
delta = (out - y)
loss = delta[0]**2 + delta[1]**2
print(loss)#监测误差
w.grad = torch.Tensor([[0,0,0]]) #归零梯度
loss.backward()
w.data -= w.grad * 0.01 #只对data进行操作
print(torch.mm(x, w.t()),w) #看结果
利用Pyt