赞
踩
本关任务:
本关提供了一个张量变量tensor ,根据所给的张量创建 Variable 变量v,同时要求同学们掌握 Variable 的相关属性,例如如何获得 Variable 的 data 属性。
import torch
from torch.autograd import Variable
tensor = torch.FloatTensor([[1,4,2],[3,1,4]])
#/********** Begin *********/
v = Variable(tensor,requires_grad=True)
#/********** End *********/
print(v)
本关要求掌握Variable 的基本属性及其意义,如requires_grad属性标记着该Variable 是否需要求导。
本关任务:
本关提供了一个32位浮点型的张量 x,要求同学们根据 x创建一个Variable类型的变量 y, y是由 x 的平方计算得到,并输出y的Requires Gradiet属性和Gradient属性。
import torch
from torch.autograd import Variable
x = torch.FloatTensor([1,2,3])
x = Variable(x, requires_grad=True)
#/********** Begin *********/
#创建一个变量 y,由 x 的平方计算得到
y = x * x
#按照要求输出y相应的属性
print(y[0:3])
print('Requires Gradient : %s ' % (y.requires_grad))
print('Gradient : %s ' % (y.grad))
#/********** End *********/
结合上一关卡所介绍的Variable属性,我们将进一步学习Variable的反向传播函数backward,从而计算出其梯度的大小。
本关任务:
本关提供了一个 Variable 类型的变量x,并将x的 requires_grad设置为True,以便后续的求导操作。在 x 基础上进行相应的运算得到y ,在 y的基础上进行运算得到z,令变量out为 z 的平均值,计算out 的梯度并输出x的梯度值。求导计算的步骤如下所示:
import torch
from torch.autograd import Variable
x = Variable(torch.Tensor(range(4)), requires_grad=True)
#/********** Begin *********/
#在 x 基础上进行运算, y = x + 2
y = x + 2
#y.backward(retain_graph=True)
#在 y 基础上进行运算, z = y * y * 3
z = y * y * 3
#令变量 out 为 z 的平均值并输出
#z.backward(retain_graph=True)
out=torch.sum(z)/len(z)
#计算 out 的梯度并输出x的梯度值
out.backward(retain_graph=True)
print("output:\n",out.view(1))
print(x.grad)
#/********** End *********/
本关任务:
本关提供了Variable 类型的变量x和Variable 类型的变量y,并将x 和y的requires_grad设置为True以便后续的求导操作。在 x和y的基础上进行运算得到z,利用torch.autograd.grad方法求梯度 dz_dx和dz_dy。
import torch
from torch.autograd import Variable
x = Variable(torch.unsqueeze(torch.linspace(1, 6, 6), dim = 1).view(2, 3), requires_grad=True)
y = Variable(torch.Tensor(2, 3).uniform_(-1, 1), requires_grad=True)
#/********** Begin *********/
#计算 z = x*x + 3*y
z = x*x + 3*y
#求dz_dx和dz_dy 并输出
dz_dx = torch.autograd.grad(z,x,grad_outputs=torch.ones(1,3))
dz_dy = torch.autograd.grad(z,y,grad_outputs=torch.ones(2,3))
print("dz_dx: \n",dz_dx)
print("dz_dy: \n",dz_dy)
#/********** End *********/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。