Pytorch求导基本操作

最简单的求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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值