aotograd

任务描述

本关任务:

本关提供了一个张量变量tensor ,根据所给的张量创建 Variable 变量v,同时要求同学们掌握 Variable 的相关属性,例如如何获得 Variable 的 data 属性。

相关知识

之前我们学习” Pytorch 之 Tensor “中提过, Pytorch和 Numpy 有很多相似之处,而 Pytorch 与其最不同的地方在于 Pytorch 提供了自动求导功能,也就是可以自动计算出用户所需的参数的梯度,这个操作由另外一个基本元素提供——Variable。

本质上Variable和Tensor没有区别,多数情况下,将Tensor替换为Variable,代码一样会正常的工作。不过Variabel会放入一个计算图(computational graph),这个图将所有的计算步骤 (节点) 都连接起来,进行前向传播,反向传播以及自动求导。在最后进行误差反向传递时,一次性将所有 Variable 里面的梯度都计算出来,而Tensor 就没有这个能力啦。

autograd.Variable 是这个包中最核心的类。 它包装了一个 Tensor,并且几乎支持所有定义在其上的操作。一旦完成了运算,用户可以调用 .backward()来自动计算出所有的梯度,可以通过属性 .data 来访问原始的Tensor,而关于Variable的梯度则集中于 .grad 属性中。

创建 Variable

在创建之前,首先要引入相应的包,如下列代码所示:

import torch
from torch.autograd import Variable

基本形式:

Variable(data, requires_grad=True)

参数说明:

data: 任意的 tensor 类
requires_grad:是否参与误差反向传播, 是否计算计算梯度

应用示例:

tensor = torch.FloatTensor([[1,2],[3,4]])
variable = Variable(tensor, requires_grad=True)

输出结果:

Variable containing:
1  2
3  4
[torch.FloatTensor of size 2x2]

Variable 数据
利用variable.data可获取 Variable 中的张量。

应用示例:

print(variable.data)

输出结果:

1  2
 3  4
[torch.FloatTensor of size 2x2]

任务描述

本关要求掌握Variable 的基本属性及其意义,如requires_grad属性标记着该Variable 是否需要求导。

本关任务:

本关提供了一个32位浮点型的张量 x,要求同学们根据 x创建一个Variable类型的变量 y, y是由 x 的平方计算得到,并输出y的Requires Gradiet属性和Gradient属性。

相关知识

Variable 形式的数据, 在很多时候是用不了的( 比如想要用 plt 画图 ), 所以我们要转换一下, 将它变成 tensor 形式。

Variable 数据

之前我们学习了利用.data访问 Variable 的 Tensor,可以在此基础上利用 numpy() 转换为 numpy 类型。

应用示例:

print(variable.data.numpy())   

输出结果:

[[ 1.  2.]
 [ 3.  4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值